#include <stdio.h>
int main(void)
{
int a = 0,i = 0;
int *p1 = &a,*p2 = &a;
for(i = 0;i < 10;i ++)
{
++ *p1;
*p2 ++;
}
printf("%d,%d\n",*p1,*p2);
getch();
return 0;
}
对于这一段代码,*p1输出10,而*p2输出一个随机值。原因是因为当++*p1是对值++,而*p2++是对指针++。这是为什么呢?因为++和*的优先级是一样的,而++是由右向左结合的,所以才会出现这样的结果。如果要用*p++必须(*p)++。