关于C++里面的自加运算,即i++之类的问题!急!

int main( )
{ int i=2;
cout<<i++<<++i<<i<<i++<<endl;
cout<<i<<endl;
return 0;
}
为什么这个东西的答案是
4432
5

求详细解答

第1个回答  2010-07-08
如果用过C的printf你就会知道了,有些编译器的运算是从右到左的,就是先执行最右边的i++,所以最后一个是2,然后倒数第二个直接输出自加后的i就是3,然后接下来的,你应该知道了。
第2个回答  2010-07-08
为什么用vs2008,编写同样的代码,结果却是4552呢?分行写答案正确这个我知道,合到一起,从右向左计算也不对呀,求指教。。。
第3个回答  2010-07-08
你给出的答案是正确的。
其实在c/c++中调用函数的,实际参数的求值顺序没有统一的规定,有的是从左到右求值,有的是从右到左求值的。

此题要是按从左到右的顺序求值结果;24444
5
此题要是按从右到左的顺序求值结果就是你给出的结果,我用c++运行结果就是和你给的一样。
第4个回答  2010-07-08
这个题目吧,也不好说,还要看用什么软件运行了。
在vc下面结果是
4432
5
在dev c++上是
2444
5
解释也不好解释。
相似回答
大家正在搜