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) 编辑 收藏 举报