I am trying to execute this C++ Program code in TurboC++
#include<iostream.h> #include<stdio.h> #include<conio.h> void main() {clrscr(); int i; long int a=10,*p; p=&a; for(i=0;i<10;i++) {printf("\n{Via printf}\t&a=%p,p=%p",&a,p); cout<<"\n{Via cout}\t&a="<<&a<<",p="<<p; p=p+1; } getch(); } Now, output of this program is as follows:
{Via printf} &a=FFF2,p=FFF2 {Via cout} &a=0x8f87fff2,p=0x8f87fff2 {Via printf} &a=FFF2,p=FFF6 {Via cout} &a=0x8f87fff2,p=0x8f87fff6 {Via printf} &a=FFF2,p=FFFA {Via cout} &a=0x8f87fff2,p=0x8f87fffa {Via printf} &a=FFF2,p=FFFE {Via cout} &a=0x8f87fff2,p=0x8f87fffe {Via printf} &a=FFF2,p=0002 {Via cout} &a=0x8f87fff2,p=0x8f870002 {Via printf} &a=FFF2,p=0006 {Via cout} &a=0x8f87fff2,p=0x8f870006 {Via printf} &a=FFF2,p=000A {Via cout} &a=0x8f87fff2,p=0x8f87000a {Via printf} &a=FFF2,p=000E {Via cout} &a=0x8f87fff2,p=0x8f87000e {Via printf} &a=FFF2,p=0012 {Via cout} &a=0x8f87fff2,p=0x8f870012 {Via printf} &a=FFF2,p=0016 {Via cout} &a=0x8f87fff2,p=0x8f870016 I know 0x (i.e, p output via cout) is denoting hexadecimal no. ,
also its last four digits is denoting its stored value,
but what does 8f87 (its third,fourth,fifth & sixth digits) is denoting?
p=p+1;increments the pointer, not what it points to.