在此链接中,声明说
子表达式的求值顺序,包括运算符的操作数(例如,+、-、=、*、/)是未指定的。
很明显,在表达式中
foo1() = foo2() = foo3() = 7; // snippet of C++ code
运算符的操作数=可以按任何顺序求值。您的编译器可以自由选择(链接,由Ralph Tandetzky回答)。
这个问题可能看起来很愚蠢,但我对此感到非常困惑。foo1()如果、foo2()和foo3()被 、 和 代替a,b上述陈述是否也成立 c?如:
a = b = c = 7;