C++ 引用难题 : My output appears reversed. 为什么?

标签 c++ operator-precedence

以下代码的输出是不带引号的“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/

相关文章:

C++ 缓冲区溢出

c++ - GCC 的 STL 排序问题

Haskell: "parse error in pattern"在哪里

jar - 覆盖类路径中的默认 hadoop jar

c++ - 类数据成员的销毁顺序?

c++ - 为什么类中方法的顺序在 C++ 中无关紧要?

c++ - 字符串文字到 basic_string<unsigned char>

C++ 在读取 Hex 和将 Hex 写入文件时遇到问题

Scala:可以在不带括号的表达式中使用 "foo match { bar }"吗?

python - Python 比较运算符从左到右链/组是什么意思?