搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 求大家看下这段代码奇怪的输出?
标题:
求大家看下这段代码奇怪的输出?
只看楼主
家力掠
等 级:
论坛游民
帖 子:52
专家分:16
注 册:2015-6-28
结帖率:
41.18%
楼主
已结贴
√
问题点数:5 回复次数:3
求大家看下这段代码奇怪的输出?
#include <iostream>
using namespace std;
int main()
{
int count = 0;
cout << count++ << count++ << count++ << endl;
return 0;
}
为什么输出的是210而不是012呢?
搜索更多相关主题的帖子:
include
count
2016-05-15 15:34
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:5
别研究了,这代码属于未定义行为
收到的鲜花
家力掠
于
2016-05-15 17:28
送鲜花
2朵 附言:我很赞同
2016-05-15 17:01
林希志
等 级:
新手上路
帖 子:3
专家分:0
注 册:2016-3-13
第
3
楼
得分:0
cout与C语言的printf有相似之处,都是右结合性,(通俗的讲就是从右边开始输出)
2016-05-19 15:38
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
4
楼
得分:0
以下是引用
林希志
在2016-5-19 15:38:32的发言:
cout与C语言的printf有相似之处,都是右结合性,(通俗的讲就是从右边开始输出)
我猜你所谓的右结合其实是入栈顺序,但这跟入栈顺序无关,其实相关的是求值顺序。
但对于这代码,即使C++规定了它的求值顺序也没用,“未定义”就是死刑终审,不要在未定义下讨论任何实现,不要将“未定义”和“实现定义”混淆,后者才是有确定结果的,虽然每个编译器的结果可能不相同。
2016-05-19 23:20
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-464844-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.021681 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved