繁体   English   中英

C ++参考拼图:我的输出似乎颠倒了。 为什么?

[英]C++ References Puzzle: My output appears reversed. Why?

以下代码的输出为“ 321”,不带引号。 为什么不选择“ 123”?

#include <iostream>
using namespace std;

int& inc(int& start)
{
 return ++start;
}

int main()
{
 int i = 0; 
 cout << inc(i) << inc(i) << inc(i) << endl;
}

您的代码将调用“未指定行为”,因为对operator<<的参数的求值顺序未指定

调用operator<<修改相同的变量。 不要写这样的代码。

注意:请注意,代码不会导致未定义的行为,因为在修改i和读取i之间存在序列点(至少一个函数调用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM