[英]Trying to reverse a string in C++, but gibberish appears at the of the reversed string?
[英]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.