在c语言中,*p++为什么等价于*(p++)。当优先级相同时,结合性怎么判断?
答案:2 悬赏:60 手机版
解决时间 2021-11-19 17:18
- 提问者网友:却不属于对方
- 2021-11-19 13:04
在c语言中,*p++为什么等价于*(p++)。当优先级相同时,结合性怎么判断?
最佳答案
- 五星知识达人网友:孤老序
- 2021-11-19 13:21
*(间接寻址符)和++(自增运算符)两个处于同一优先级,结合方向是自右向左,所以*p++,先执行p++运算,然后再取值。
当优先级相同的时候,结合性可以查阅运算符表,大多数跟算数运算一致。我就是将那张表打出来贴在显眼的地方,随时看看就记住了。
当优先级相同的时候,结合性可以查阅运算符表,大多数跟算数运算一致。我就是将那张表打出来贴在显眼的地方,随时看看就记住了。
全部回答
- 1楼网友:十年萤火照君眠
- 2021-11-19 14:41
因为后自加是在本语句全部执行完后才把对象自加.所以在这里先执行和后执行都一个样.
*p++因为*和++的优先级一样(好像是)但是因为*在前面,所以先执行*,再执行++.这样p是先取值,再后移.
而*(p++)因为*和++的优先级一样,但是有个小括号,所以先执行++.但因为是后自增.所以自增运算是在这个语句执行完才执行的.所以还是先执行的取值,再后移一位.
*p++因为*和++的优先级一样(好像是)但是因为*在前面,所以先执行*,再执行++.这样p是先取值,再后移.
而*(p++)因为*和++的优先级一样,但是有个小括号,所以先执行++.但因为是后自增.所以自增运算是在这个语句执行完才执行的.所以还是先执行的取值,再后移一位.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯