为什么这个算出来b=22???请讲一下 谢谢
#include <stdio.h>void main()
{
int a,b;
a=5;
b=(++a)+(++a)+(++a);
printf("%d\n,%d\n",a,b);
}
搞不清楚(++a)+(++a)+(++a)的含义 论坛 自己搜自增自减 http://bbs.fishc.com/forum.php?mod=viewthread&tid=27746
此贴有详解,笑纳 编译器问题。。有好多人问了。。 钻牛角尖的问题,这个不同编译器应该有不同的处理,你自己反汇编看看就知道了 红头发 发表于 2014-7-11 19:24
http://bbs.fishc.com/forum.php?mod=viewthread&tid=27746
此贴有详解,笑纳
谢谢 懂了 楼主我建议你不要问这类问题,在平台上具有不可移植性,可能计算结果不一样,你只要搞清楚i++
和 ++ i ,就可以了。。这类问题没有价值。。 我只想说,楼主你要学会使用C的调试工具 楼上正解!!!!!!!!!!!!!!!!!! 本帖最后由 zhoushilei 于 2014-7-13 22:35 编辑
这里是C++的一个BUG,他是先计算完所有的++A ,在计算A+A+A,就是说它完成的8+8+8,这是这个语言转化为汇编的一个特点,最好以后不要这样写代码,容易误解。这种东西没有什么高端不高端的地方,反正公司里看到你的代码这样写,就不会应聘你的。{:1_1:} 我稍微修正一下,这个是BUG,有时候他是先做几次++A,在做计算的,可能还会在做几次++a,一般是先做完++a,在做和的。我们的C++老师说这是编译器的BUG。
页:
[1]