我在C中有以下表达式。我问我们是否可以预测z的值
int x,y,z;
z= (x=2) + (y=x)
我知道()运算符已经离开了关联性。这是否意味着左括号将在右边的那个之前进行评估?
我试图理解我是否正确理解了这个概念
提前致谢
答案 0 :(得分:0)
没有。关联性说0.0
1.0
32.0
513.0
2944.0
10625.0
29376.0
68257.0
140288.0
263169.0
460000.0
;链接2个或更多相同的运算符时,括号无关紧要。
在您的代码中,编译器可以按任意顺序自由评估x + (y + z) == (x + y) + z == x + y + z
的操作数。你不知道结果是否
+
或
x=2; y=x; z = x + y;