pointer and ++--

本文主要关于演示指针与自增自减运算符结合的时候的运算顺序。

表达式 含义
*p++*(p++) 自增前表达式的值是*p,然后自增p
(*p)++ 自增前表达式的值是*p,然后自增*p
*++p*(++p) 先自增p,自增后表达式的值是*p
++*p++(*p) 先自增*p,自增后表达式的值是*p

原理是自增和*在一起时结合顺序由右到左,比如*p++,先运算p++,也就是p当前的值,再运算*p对寻址,再对p自增。

注意以上所有的表达式返回的值都是*p,只不过对分别是对p*p的自增操作。