为了账号安全,请及时绑定邮箱和手机立即绑定

C++ primer中cout << *iter++ << endl的执行顺序怎么跟优先级有矛盾?

C++ primer中cout << *iter++ << endl的执行顺序怎么跟优先级有矛盾?

呼唤远方 2019-04-16 20:25:41
P141与P146之间的矛盾。关于iter++,前者说操作的是iter未加1前的副本,后者说*的操作数是iter做了自增操作后的结果。cout
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

优先级显然是自增大于解引用的。如果是反过来,++的作用对象应该是*iter而不是iter。
另外注意优先级和自增触发的时间不是一回事。++在解析语句的时候只是给目标附上“用后自增”的状态,无论他优先级如何都是执行完整句话再自增的。
                            
查看完整回答
反对 回复 2019-04-16
?
墨色风雨

TA贡献1853条经验 获得超6个赞

就*iter++而言,始终等价于
autoi=iter;//复制iter
*i;//解引用副本
++iter;//iter自增
所以,就是前者的结论,也是题主验证的结果。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 662 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号