Tag: order of evaluation

如果f修改x,x * f(x)的值是未指定的?

我查看了一系列有关序列点的问题,并且一直没有弄清楚如果f修改x , x*f(x)的评估顺序是否有保证,而f(x)*x 。 考虑这个代码: #include <iostream> int fx(int &x) { x = x + 1; return x; } int f1(int &x) { return fx(x)*x; // Line A } int f2(int &x) { return x*fx(x); // Line B } int main(void) { int a = 6, b = 6; std::cout << f1(a) << " " […]