int a;
int m;
int *p = &a;
m = *p++;<==> m = *(p++);
因为*(p++)先让p++,但是没遇到序列点之前,++的副作用没有产生,也就是p的值还没改变。然后将*p赋给m。
先将*p赋给m,然后让p++;m不变。
1. m= (*p)++;先取*p的值赋给m,再让*p的值++;
m = ++*p;先让*p 加1,在把*p 赋给m,p的值没变。
m = ++(*p);
m = *++p;先让p 加1,在把*p赋给m。
m =*(++p);
总结:1.++挨着p则改变p的值,*p的值不变,否则改变*p的值,p的值不变,除非*p被小括号括起来了,把*p当成一个整体来看改变的是*p的值。
2. 以p为中心先向左计算再向右计算。