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
I haven't used Turbo C, but I believe it is an old 16-bit DOS/Windows compiler. 16bit programs had near and far pointers. Near pointers were 2 bytes and could only point to the current segment. Far pointers were a 2 byte segment and a 2 byte offset which were shifted and added to give 20 bits of addressing.
The 8 digits you are seeing are the 2 byte pointer added to the shifted value of the current segment. See x86 memory segmentation: http://en.wikipedia.org/wiki/X86_memory_segmentation