*(p++)与*(++p)作用不同.若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1].这句话怎么理解?*(p++)不是等于先*p=a;然后p++=a;a=a+1吗?

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/06 17:24:16

*(p++)与*(++p)作用不同.若p的初值为a,则*(p++)等价a[0],*(++p)等价a[1].这句话怎么理解?
*(p++)不是等于先*p=a;然后p++=a;a=a+1吗?

运算顺序不一样,*(p++)先运行*()这个运算,然后再运行p++,故*(p++)等价于a[0];
*(++p)先运行++p,然后再运行*(),故*(p++)等价于a[1];
但这两句话最后的P都加了1.