以下代码的输出是不带引号的“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
之间存在序列点(至少一个函数调用)被修改和读取时'。
关于C++ 引用难题 : My output appears reversed. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818791/