Syntax “a+;”是什么意思b+;=是什么意思?

Syntax “a+;”是什么意思b+;=是什么意思?,syntax,Syntax,我看到了下面的代码:a+=b+=c-请问,有人知道这是什么意思吗 a = a + b b = b + c 或: 它取决于+=运算符的关联性。通常它是从右向左的,所以这是第二个答案:a+=b是在b+=c之后计算的。在大多数高级语言中,这样的表达式是从左向右计算的,因为+=是从右向左关联的。在这种情况下,将c的值添加到b的值中,然后将b的值(通过c添加后)添加到a 这相当于您的第二个块。它只能计算为: a += (b += c) 如果评估结果如下: (a += b) += c 然后它将把a+=

我看到了下面的代码:
a+=b+=c
-请问,有人知道这是什么意思吗

a = a + b
b = b + c
或:


它取决于
+=
运算符的关联性。通常它是从右向左的,所以这是第二个答案:
a+=b
是在
b+=c
之后计算的。在大多数高级语言中,这样的表达式是从左向右计算的,因为
+=
是从右向左关联的。在这种情况下,将
c
的值添加到
b
的值中,然后将
b
的值(通过
c
添加后)添加到
a


这相当于您的第二个块。

它只能计算为:

a += (b += c)
如果评估结果如下:

(a += b) += c

然后它将把
a+=b
计算为一个数值,然后尝试更改数值,而不是变量,这是不可能的。

1)用哪种语言?2) 你试过了吗?这将是你的第二个障碍。这意味着以前的某个开发者是个反社会者。同意@InversedSpear。如果此代码在代码库中,您应该找出它的效果,然后用更清晰的代码替换。这段代码客观上很糟糕。如果关联性不是从右到左,那该怎么办?如果表达式
a+=b
返回例如
5
,那么
5+=c
是什么意思?@Guffa Nice catch;只有当快捷方式赋值的结果是左值本身时,这里的LTR才可能。所以这不仅仅是关联性的问题。)啊哼。这是必要的条件,但不是唯一的条件;如果<代码> += 返回一个LValk(并且经常如此;<代码>(A+= B)+C+/C> >是C++中的正确语法,例如,它的关联性很重要。
(a += b) += c