c++ 计算求值顺序问题

tksoy 2014-10-19 11:28:30
int a(10),b(4);
执行表达式(++b)+=(a++)+(++b)之后
a+b的值是多少?在c++6.0中运行了下,为什么是33?
...全文
136 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangkdm 2014-10-24
  • 打赏
  • 举报
回复
我不知道 这种题目有意义吗? 项目开发中会写这样的代码?
赵4老师 2014-10-20
  • 打赏
  • 举报
回复
li4c 2014-10-20
  • 打赏
  • 举报
回复
求你不要纠结这种题目了,遇到了直接说我不会好了,没什么意义啊
majunyangyang 2014-10-19
  • 打赏
  • 举报
回复
引用 2 楼 chenjt3533 的回复:
看到很多人总是在研究这些东西,表示无语。 1、只要记得 ++i 和 i++的区别就可以了 2、正真在项目里写出这种代码,直接抓去枪毙算了; 3、如果是学校的题目,我只能说何必为了出题而出题呢
楼上说的确实蛮对的,最近论坛上老是有这样帖子,代码可读性这么差确实是没法用。。。。
chenjt3533 2014-10-19
  • 打赏
  • 举报
回复
看到很多人总是在研究这些东西,表示无语。 1、只要记得 ++i 和 i++的区别就可以了 2、正真在项目里写出这种代码,直接抓去枪毙算了; 3、如果是学校的题目,我只能说何必为了出题而出题呢
majunyangyang 2014-10-19
  • 打赏
  • 举报
回复
+优先级高于+=,并且+操作和+=操作都是从右到左,首先++b使b==5,a++使a==11,也就是(a++)+(++b)得到16,等式相当于变为(++b) += 16,求出b==22,这时a+b=11+22=33。理一下顺序应该是这样的。
unituniverse2 2014-10-19
  • 打赏
  • 举报
回复
社会上对这种问题真是不厌其烦、乐此不疲啊。。。当然,不知者不罪,否则这问题就是秀(出题者)下限的 看过国外也出类似的面试题/考题,不过好歹还算老实的提供了UB的选项。换到”我们“考,这选项就被出题的人吃了。
  • 打赏
  • 举报
回复
正确的顺序() [] . -> expr++ expr-- * & + - ! ~ ++expr --expr (typecast) sizeof * / % + - >> << < > <= >= == != & ^ | && || ?: = += -= *= /= %= >>= <<= &= ^= |= ,
百曉生 2014-10-19
  • 打赏
  • 举报
回复
可以看看置顶帖——http://bbs.csdn.net/topics/370153775 这种格式很不好,不要这么用就行了

64,650

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧