检查我是否理解这个概念(关联性)

时间:2018-03-09 19:59:28

标签: c associativity

我在C中有以下表达式。我问我们是否可以预测z的值

int x,y,z;
z= (x=2) + (y=x)

我知道()运算符已经离开了关联性。这是否意味着左括号将在右边的那个之前进行评估?

我试图理解我是否正确理解了这个概念

提前致谢

1 个答案:

答案 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;