设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1035|回复: 8
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 00:58:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
#include <iostream>
using namespace std;
int main()
{
int x=5;
cout<<x<<x++<<x<<endl;
return 0;
}

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

但是.....

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

大家说奇怪不奇怪?

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

我现在真是苦笑不得

哪位高人能指点一下
2#
发表于 2009-11-3 00:58:16 | 只看该作者
gcc下编译还是556,这样似乎更贴近"大家一看"的正确结果。

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

不提倡这种给编译器找麻烦的写法。
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 00:58:19 | 只看该作者
通过我不断调试,终于搞明白了,

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

cout中的计算是从右向左的,输出是从左向右的.
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 00:58:21 | 只看该作者
给编译器找麻烦的写法
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 00:58:24 | 只看该作者
以下是引用冰的热度在2007-9-9 17:41:04的发言:
通过我不断调试,终于搞明白了,

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

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





好像是这个样子
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 00:58:29 | 只看该作者
有意识,呵呵!!
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 00:58:32 | 只看该作者
又学到一点!!呵呵谢谢
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 00:58:34 | 只看该作者
这种做法没有太多的意义!
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 00:58:36 | 只看该作者
呵呵!每天进步一点点!!谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 01:29 , Processed in 0.105105 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表