新微赢技术网

标题: [讨论]cout 的一个奇怪而有趣的问题,怎么想都想不通,不应该呀...... [打印本页]

作者: ぁ贪ā.翫?    时间: 2009-11-3 00:58
标题: [讨论]cout 的一个奇怪而有趣的问题,怎么想都想不通,不应该呀......
代码如下:
#include <iostream>
using namespace std;
int main()
{
int x=5;
cout<<x<<x++<<x<<endl;
return 0;
}

程序非常之简单,大家一看就能得出结果 556

但是.....

如果你考下去运行一下,会发现,答案是 655 !!!!

大家说奇怪不奇怪?

仔细分析一下,不应该呀......

我现在真是苦笑不得

哪位高人能指点一下
作者: 为你执著    时间: 2009-11-3 00:58
gcc下编译还是556,这样似乎更贴近"大家一看"的正确结果。

不是cout的问题,而是你写法问题,这要看编译器怎么去解析。

不提倡这种给编译器找麻烦的写法。
作者: ┈ㄝai〾噯儿    时间: 2009-11-3 00:58
通过我不断调试,终于搞明白了,

原来在VC++6.0的环境下,

cout中的计算是从右向左的,输出是从左向右的.
作者: 妈妈猪的一天    时间: 2009-11-3 00:58
给编译器找麻烦的写法
作者: 老子xin坏    时间: 2009-11-3 00:58
以下是引用冰的热度在2007-9-9 17:41:04的发言:
通过我不断调试,终于搞明白了,

原来在VC++6.0的环境下,

cout中的计算是从右向左的,输出是从左向右的.





好像是这个样子
作者: ︶ㄣ⒏懂緈諨    时间: 2009-11-3 00:58
有意识,呵呵!!
作者: 女人请自重    时间: 2009-11-3 00:58
又学到一点!!呵呵谢谢
作者: 逍遥◆爱你    时间: 2009-11-3 00:58
这种做法没有太多的意义!
作者: 忧郁侠客    时间: 2009-11-3 00:58
呵呵!每天进步一点点!!谢谢!




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2