问题标签 [compound-assignment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Clarification on /= operator
In the following code
I do not understand what the combination of =
and /=
is doing exactly, and why this is allowed (the code compiles and runs correctly under Valgrind).
c - 为什么无符号字符之间的加法会发生隐式转换?
GCC 警告此代码:
说:
似乎j
隐式转换为int
.
为什么添加相同类型的变量会发生隐式转换?
c++ - 重载“+=”运算符:c+=a_times_b 有效,但 c+=a*b 无效?
我有两个类 A 和 B。产品 A*B 应该是 B 类型。由于 B 类型的变量会占用大量内存,所以我需要避免像这样的操作B_1 = B_1 + (A_1 * B_2)
,其中(A_1 * B_2)
会临时分配。换句话说,我需要B_1 += A_1 * B_2
.
我试过这个:
为什么
B_out += product
可以,但B_out += A_in * B_in
不行?有没有更好的方法来实现
+=
这个用途的 -operator?也许没有定义辅助对象pair<A*, B*>
?
python - += 在 Python 中将其分配给第三个变量
当我查看 Python 中 += 运算符的含义时,我查看了一个类似问题的答案:+= 在 python 中到底做了什么?. 但在下面的代码摘录中:
使用了第三个变量。如果我理解这个概念,它会减去arr[i]
并将arr[i-1]
其添加到increments
的值,然后将结果分配给increments
. 详细说明:上面的语句是否类似于
还是还有更多?
c - 什么 *p1 ^= *p2; 在c中做
在 C 中,这个语句是做什么的?
p1
并且p2
是指向 char 数组的两个不同地址的 char 指针。我知道^
运算符是 XOR。
java - 关于 Java 中的复合赋值(+=、-=、*=、...)的困惑
我对以下代码的结果有点困惑:
它会打印出来-3
,但我希望它会打印出来-2
,因为在我的脑海中,计算应该是这样的:
我在这里想念什么?有人可以向我解释发生了什么吗?
谢谢!
c - 使用复合赋值的优点
在 C/C++ 中使用复合赋值的真正优势是什么(或者也可能适用于许多其他编程语言)?
我查看了一些链接,例如microsoft site、SO post1、SO Post2。但优点是 exp1 在复合语句的情况下只被评估一次。在第一种情况下,exp1 如何真正被评估两次?我知道先读取 exp1 的当前值,然后添加新值。更新的值被写回到相同的位置。在复合语句的情况下,这实际上是如何在较低级别发生的?我试图比较两种情况的汇编代码,但我没有发现它们之间有任何区别。
javascript - 加法赋值 += 表达式中的行为
最近碰到一个问题:Assignment operator chain理解。
在回答这个问题时,我开始怀疑自己对加法赋值运算符+=
或任何其他operator=
(&=
、、、*=
等/=
)行为的理解。
我的问题是,a
下面的表达式中的变量是什么时候更新到位的,使得其变化的值在求值时反映在表达式中的其他地方,其背后的逻辑是什么?请看以下两个表达式:
表达式 1
表达式 2
在第一个表达式中,当对最里面的表达式(a += a)
求值时,它似乎没有更新 的值a
,因此结果显示为3
而不是4
。
但是,在第二个表达式中,a
更新了 的值,因此结果为 6。
我们什么时候应该假设a
' 的值会反映在表达式的其他地方,什么时候不应该?
c# - “k += c += k += c;”中的内联运算符是否有解释?
以下操作结果的解释是什么?
我试图理解以下代码的输出结果:
目前我正在努力理解为什么“k”的结果是 80。为什么分配 k=40 不起作用(实际上 Visual Studio 告诉我该值没有在其他地方使用)?
为什么 k 是 80 而不是 110?
如果我将操作拆分为:
结果是 k=110。
我试图查看CIL,但我在解释生成的 CIL 方面并不那么深入,并且无法获得一些细节:
c++ - string += s1 和 string = string + s1 之间的区别
我的一个程序在我使用时超过了时间限制fans = fans + s[i]
,而当我使用fans += s[i]
它时,它正在被接受......为什么会发生这种情况?为了解释更多,fans是一个字符串,s也是一个字符串,所以在迭代字符串时,si只需要s的一些字符,所以我正在创建一个新的字符串fans.现在有两种方法可以将字符添加到我的新字符串中粉丝。问题在下面提到