C++ 这里的代码说明,c++;

C++ 这里的代码说明,c++;,c++,C++,但我期待着: b,a c,b d,c 我认为这与这里的行动顺序有关。如果你没有编译到C++ 17标准修订版或最近遇到的版本,则流运算符( < P>)。旧的C++标准没有指定的排序。 a,b b,c c,d 或 是有效的输出 从C++17开始,该标准保证在继续下一个之前,所有的副作用都会得到解决,这实际上是一个令人讨厌的情况对于c++何时会出现,没有确切的保证。这取决于编译器确定在中执行此操作的顺序。您可能是指++c。同样,在c++17编译器上,输出将是a、a、b、b等。请查看参考资料

但我期待着:

b,a

c,b

d,c

我认为这与这里的行动顺序有关。如果你没有编译到C++ 17标准修订版或最近遇到的版本,则流运算符(<代码> < P>)。旧的C++标准没有指定

的排序。
a,b

b,c

c,d

是有效的输出


从C++17开始,该标准保证在继续下一个
之前,所有的副作用都会得到解决,这实际上是一个令人讨厌的情况对于
c++
何时会出现,没有确切的保证。这取决于编译器确定在中执行此操作的顺序。您可能是指
++c
。同样,在c++17编译器上,输出将是
a、a
b、b
等。请查看参考资料。这里有点猜测。因此++具有更高的运算符优先级@FrankMerrow
这有@Frank.hello,你能解释一下你所说的“c++保证在@john_之后排序”是什么意思吗?你的问题是一个近乎完美的例子,所以我尝试更新答案,以便更好地描述为什么排序现在是固定的。
a,b

b,c

c,d
cout << c <<   "," << c++ << endl;
a,a
b,a
a,a b,b c,c