![]() |
please tell me how it is getting its output..
main()
{ int *p,*q,i; p=(int *)100; q=(int *)200; i=q-p; printf("%d",i); } it is getting output 50 in turbo c compiler.I do not know how it is working please reply me...:confused: |
Re: please tell me how it is getting its output..
Garbage value because it is actually subtracting the value stored at location 200 and 100 and not 200 and 100.
|
Re: please tell me how it is getting its output..
No, C doesn't dereference pointers unless you use *, i.e. you would get the difference between the contents if you did
Code:
i = *q - *p;Do this: Code:
printf("%d",sizeof(int)); |
Re: please tell me how it is getting its output..
Yup, I agree with xpi0t0s
On My Linux box, the output was 25 since on my machine int captures 4 bytes |
Re: please tell me how it is getting its output..
in linux (gcc) the memory for int is 4.............
in turbo c the memory for int is 2............ i want to know which is the standard one declared by ANCI .................... |
| All times are GMT +5.5. The time now is 10:51. |