首页 > TAG信息列表 > compound-assignment

c – 赋值运算符中的序列点

让我们以具体的复合赋值运算符^ =为例. This stackoverflow page表示在评估^ =之后可能尚未对左操作数进行修改,因此使得代码a ^ = b ^ = a ^ = b未定义的行为.但事实似乎并非如此.该标准在5.17 [expr.ass]中说明了这一点 In all cases, the assignment is sequenced after the v

c – C:使用错误:“化合物分配”和“前缀减量”一起使用

有人可以告诉我为什么C编译器在同时使用复合赋值和前缀Dec / Inc时输出错误? [但C没有] int myVar = 5; (--myVar) -= 4; // C : error C2106: '-=' : left operand must be l-value // C++: myVar=0; 我知道错误说的是什么…… 但是,我无法理解为什么C编译器不能将myVar识别为l

在JavaScript中链接复合赋值运算符

在C#中, string s = "abc"; s += (s += s); Console.WriteLine(s); 写道abcabcabc(http://ideone.com/pFNFX2).这很好,因为C#规范明确在7.16.2节中说过 the operation is evaluated as x = x op y, except that x is evaluated only once. 但是,在阅读ECMAScript 5.1语言规范