(*p)++与*p++

来源:互联网 发布:java把二叉树打印出来 编辑:程序博客网 时间:2024/05/01 23:39


int *p, a;

p=&a;//指针变量p指向变量a

(1)   (*p)++相当于a++,执行完a++后,a的值增加1,即*p的值增加1。*p是指针p指向的变量,即变量a。即p指向的变量仍然是a,只是a的值增加了1。

(2)   *p++    *和++具有相同的优先级且遵守从右至左的结合原则,故*p++ 相当于*(p++),从而*(p++)的值是a的值。 执行完(p++)后,p不再指向变量a,而是指向别的未知变量,*p的值是不可预见的,a的值保持不变。


若a=1,则 (*p)++=1;执行(*p)++之后,a=2,*p=2。

若a=1,则 *p++=1;执行*p++之后,a=1,*p未知。