Why the below is difference?
program001.c:
int main (void)
{
int a=3,*p,x;
p=&a;
*p++;
x=*p
printf("a=%d, *p=%d, x=%d\n",a, *p, x);
return 0;
}
result: a=3,*p=21974,x=21974
Program002.c:
int main (void)
{
int a=3,*p,x;
p=&a;
x=*p++;
printf("a=%d,*p=%d,x=%d\n",a,*p,x);
return 0;
}
result:a=3,*p=3,x=3
for program001's result, it can be understand: *p++ is point to undefined value, so it is unreasonable result.
for program002's result, why it is not equal to program001?