问题标签 [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.

0 投票
3 回答
9708 浏览

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).

0 投票
2 回答
996 浏览

c - 为什么无符号字符之间的加法会发生隐式转换?

GCC 警告此代码:

说:

似乎j隐式转换为int.
为什么添加相同类型的变量会发生隐式转换?

0 投票
1 回答
120 浏览

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.

我试过这个:

  1. 为什么B_out += product可以,但B_out += A_in * B_in不行?

  2. 有没有更好的方法来实现+=这个用途的 -operator?也许没有定义辅助对象pair<A*, B*>

0 投票
2 回答
238 浏览

python - += 在 Python 中将其分配给第三个变量

当我查看 Python 中 += 运算符的含义时,我查看了一个类似问题的答案:+= 在 python 中到底做了什么?. 但在下面的代码摘录中:

使用了第三个变量。如果我理解这个概念,它会减去arr[i]并将arr[i-1]其添加到increments的值,然后将结果分配给increments. 详细说明:上面的语句是否类似于

还是还有更多?

0 投票
4 回答
250 浏览

c - 什么 *p1 ^= *p2; 在c中做

在 C 中,这个语句是做什么的?

p1并且p2是指向 char 数组的两个不同地址的 char 指针。我知道^运算符是 XOR。

0 投票
4 回答
88 浏览

java - 关于 Java 中的复合赋值(+=、-=、*=、...)的困惑

我对以下代码的结果有点困惑:

它会打印出来-3,但我希望它会打印出来-2,因为在我的脑海中,计算应该是这样的:

我在这里想念什么?有人可以向我解释发生了什么吗?

谢谢!

0 投票
6 回答
1475 浏览

c - 使用复合赋值的优点

在 C/C++ 中使用复合赋值的真正优势是什么(或者也可能适用于许多其他编程语言)?

我查看了一些链接,例如microsoft siteSO post1SO Post2。但优点是 exp1 在复合语句的情况下只被评估一次。在第一种情况下,exp1 如何真正被评估两次?我知道先读取 exp1 的当前值,然后添加新值。更新的值被写回到相同的位置。在复合语句的情况下,这实际上是如何在较低级别发生的?我试图比较两种情况的汇编代码,但我没有发现它们之间有任何区别。

0 投票
3 回答
3621 浏览

javascript - 加法赋值 += 表达式中的行为

最近碰到一个问题:Assignment operator chain理解

在回答这个问题时,我开始怀疑自己对加法赋值运算符+=或任何其他operator=&=、、、*=/=)行为的理解。

我的问题是,a下面的表达式中的变量是什么时候更新到位的,使得其变化的值在求值时反映在表达式中的其他地方,其背后的逻辑是什么?请看以下两个表达式:

表达式 1

表达式 2

在第一个表达式中,当对最里面的表达式(a += a)求值时,它似乎没有更新 的值a,因此结果显示为3而不是4

但是,在第二个表达式中,a更新了 的值,因此结果为 6。

我们什么时候应该假设a' 的值会反映在表达式的其他地方,什么时候不应该?

0 投票
7 回答
6306 浏览

c# - “k += c += k += c;”中的内联运算符是否有解释?

以下操作结果的解释是什么?

我试图理解以下代码的输出结果:

目前我正在努力理解为什么“k”的结果是 80。为什么分配 k=40 不起作用(实际上 Visual Studio 告诉我该值没有在其他地方使用)?

为什么 k 是 80 而不是 110?

如果我将操作拆分为:

结果是 k=110。

我试图查看CIL,但我在解释生成的 CIL 方面并不那么深入,并且无法获得一些细节:

0 投票
4 回答
3730 浏览

c++ - string += s1 和 string = string + s1 之间的区别

我的一个程序在我使用时超过了时间限制fans = fans + s[i],而当我使用fans += s[i]它时,它正在被接受......为什么会发生这种情况?为了解释更多,fans是一个字符串,s也是一个字符串,所以在迭代字符串时,si只需要s的一些字符,所以我正在创建一个新的字符串fans.现在有两种方法可以将字符添加到我的新字符串中粉丝。问题在下面提到