*p++的疑问与*(p++)
#include "stdio.h"void main()
{
int a=2;
int *p=&a;
int *pold;//记录P指向的地址,为了作为比较使用
pold=p;
//-----------原来的信息
printf("原来的a=%d ",a);
printf("原来的p=%x ",p);
printf("原来的pold=%x ",pold);
//----------进行变化
printf("a=%d,(*p)++的结果=%d,a的结果a=%d ",a,(*p)++,a);
printf("a的结果a=%d ",a);
printf("地址变化的结果p-pold=%x ",p-pold);
程序运行的结果如下 ,
我对第十四行的结果存在疑问:1 按照printf( )函数从右到左的运算方式,那么结果应该是 a=3,( *p)++=2,a=2;
第十五行的结果应该为 a=3;
我把(*p)++ 换成a,结果如下
请问这是为什么,盼望赐教 我在线等待!!谢谢!!!