首先,明确:++的优先级高于*的优先级。
(*p)++
//首先取p所指向的值,给它所指向的值做后缀加,由于是后缀加,所以返回原来表达式的值,即该表达式最后的值为p所指向的值
*p++
//它相当于*(p++),首先指针p后移,由于对指针是后缀加,所以p++返回p没后移时的指针,如果是数组,那么表达式的值为指针当前所指元素(指针没有后移时)的值
++*p
//即相当于++(*p),先取p所指向的值,然后施以前缀加,则该表达式的值为p当前所指对象的值+1的结果。
*++p
//相当于*(++p),指针p先后移,如果是数组,则指向下一个元素,然后++p返回指针下移后的指针。然后*取下移指针后所指向的值
(*p)++与*p++与++*p与*++p的区别
本文详细解析了C/C++中涉及指针的几种运算符的优先级及执行顺序,包括后缀加加、前缀加加、间接寻址等操作,并通过实例解释了这些运算符在实际代码中的行为。

被折叠的 条评论
为什么被折叠?



