Polariswang

导航

C++中:(*p)++和*(p++)和*p++的区别

 

      

 

1. 理解自增自减运算符
     (1)后置自增自减运算符优先级>前置自增自减运算符。


     (2)前置自增自减运算符“变量先自增自减再使用”。


     (3)后置自增自减运算符“变量先使用再自增自减”。


 2. 优先级

    *运算符与前置自增自减运算符都是3级运算符,但是前置自增自减运算符还是优先于*运算符。


     而后置自增自减运算符是2级运算符。级数越小,优先级越高。

3. 遵循这一规则,可以理解:若 int a=100,*p=&a;


     (1)*p++中:后置自增运算符优先,先使用p,即先指向a,然后p再指向下一个内存单元。与*(p++)没有区别。括号表示运算符

 

优先,而后置自增运算符本来就优先于*,所以括号多余。


     (2)(*p)++ 表示p指向的元素加1.


     (3) *(++p)这里p先加1,然后再取此时p指向的元素。

 

 

posted on 2017-08-20 19:28  Polariswang  阅读(3374)  评论(0编辑  收藏  举报