In the Turbo C compiler, the size of an int pointer is shown as 2 bytes when sizeof() operator is used. Now, if I print the address of an int variable, it comes out to be a
You probably have a 16-bit version of Turbo C, and that's the size of int for that compiler: http://www.cs.technion.ac.il/~nikol/material/types_sizes.pdf
In fact, all versions of Turbo C were 16-bit, apparently.
As the others already suggested, get yourself a modern C compiler, like gcc or clang.