*p++和*(p++)区别

2023-08-23 11:19:27 来源:初三网


(资料图片仅供参考)

*p++和*(p++)的区别是运算顺序不同。*p++由于*和++优先级同级,满足右结合性,从右至左。p先取值,因为此时语句还没执行完,p未被赋值,故*p++所取的值为a[0],*p++等同于*(p++)。

*(p++),是先对指针P进行++运算,然后再取取值,由于*和++的运算优先级一样,且是右结合。故*p++相当于*(p++),p先与++结合,然后p++整体再与*结合。

但是,因为++后置的时候,本身含义就是先运算后增加1(运算指的是p++作为一个整体与前面的*进行运算;增加1指的是p+1),所以实际上*p++符号整体对外表现的值是*p的值,运算完成后p再加1。

关键词:
分享:
x 广告
x 广告

Copyright   2015-2022 魔方网版权所有  备案号:京ICP备2022018928号-48   联系邮箱:315 54 11 85 @ qq.com