In IPv4 , class C has more than 2 million networks while it has only 256 hosts...I can't figure out the reason..?
So class based network addresses are obsolete. The reason Class C had so many network addresses and only 254 hosts addresses (its not 256, its 2^8-2) is because it was intended to be used by smaller organization that don't have a lot of hosts. If these organizations used, say, class B address, a lot of addresses would have been gone waste.
One must remember that the class based division was made at a time when networking was relatively new and no one was expecting number of hosts and networks to grow so big.
I'll give a better example. Say an organization has only 200 hosts. They could get a class C address. Now, only 54 addresses are wasted. If they had to use a class B address, they would have got a lot of addresses that they would never use and would be wasted.