*p和++对p的影响和对*p的影响

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 赋给mp的值没变。

m = ++*p);

m = *++p;先让1,在把*p赋给m

m =*++p);

 

总结:1.++挨着p则改变p的值,*p的值不变,否则改变*p的值,p的值不变,除非*p被小括号括起来了,把*p当成一个整体来看改变的是*p的值。

     2. 以p为中心先向左计算再向右计算。

 

原文地址:https://www.cnblogs.com/vhwuln/p/3502747.html