一题简单加法问题

a56508820 2008-12-24 06:50:36
int a=2,b=2;
a+=(b++)+(++b)+(b++)
求a和b的值
我怎样想也是12和5,但是运行结果是11和5,为什么
...全文
102 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hailei0526 2008-12-25
  • 打赏
  • 举报
回复
这里面设计到了运算符的优先级问题
(b++)+(++b)+(b++);
自右向左依次计算,但又是括号里面的所以有
4+3+2
即a+=9;
所以a应该是等于11。
幽游闭关 2008-12-25
  • 打赏
  • 举报
回复
这种题目就是用来应试的
开发这样写还是早点卷铺盖把
smdszgzh 2008-12-25
  • 打赏
  • 举报
回复
这个东西不好搞!反正我是这样考虑的
先++b,然后运算,再b++ b++
先++b,b=3,2+3+3+3=11
再b++ b++ b=5;
雪鹰翔天 2008-12-25
  • 打赏
  • 举报
回复
在微软编译器里,你会发现
(b++)+(b++)+(++b)
(b++)+(++b)+(b++)
(++b)+(b++)+(b++)
三个是相等的,都等于 9.
但用Dev-c++这三个就不相等,第一个等于7 后两个等于9..
雪鹰翔天 2008-12-25
  • 打赏
  • 举报
回复
不同的编译器会产生不同的结果...
试验过.没意义....
detectivekld 2008-12-25
  • 打赏
  • 举报
回复
如果一个变量出现在同一个函数的多个参数中时,不要将增量或者减量用于它上面。
当一个变量多次出现在一个表达式里时,不要将增量或者减量用于它上面。
neeestth 2008-12-25
  • 打赏
  • 举报
回复
考试害死人啊
AldisZhan 2008-12-24
  • 打赏
  • 举报
回复
别再奇怪的语句 浪费时间 建议多看看好的代码
mikescofied 2008-12-24
  • 打赏
  • 举报
回复
编程忌讳这种写法,这种只是在考试考,当你实际编写程序的时候,多注意,少这样写
ooily 2008-12-24
  • 打赏
  • 举报
回复
友情up
a56508820 2008-12-24
  • 打赏
  • 举报
回复
难道就无人会
jieao111 2008-12-24
  • 打赏
  • 举报
回复
兄弟,别在浪费生命了。。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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