May 20, 2004 1:45 PM
Pointers are very useful but not easy to understand in C/C++. Try to
predict the output of the following code:
int* a; int* b; a=(int *)1000; b=(int *)2000; printf("Difference: %d",b-a);
You are wrong if you expect the output to be 1000. Generally, the output of the program will be:
(2000 - 1000) / sizeof(int)
The output of the above program varies depending upon the C
implementation on the machine. If you compile and run this using Turbo
C on a intel dos/windows machine, the output will be
500
. But if you are compiling this using gcc and running
on a intel based *nix system, the output would be
250
. The reason for this is that the size of integer
variable is 2 bytes on a Turbo C implementation while in gcc, its 4
bytes.