回答
形式
E1 op= E2
的化合物赋值表达式是等效于E1 = (T) ((E1) op (E2))
,其中T
是E1
类型,不同之处在于E1
是只评估一次。
的最后一句是很重要的,如果左侧有副作用:
array[i++] += 1;
这是不等同于:
array[i++] = array[i++] + 1;
第一个表达式将递增i
一次。第二个将增加i
两次,并将右边的值分配给array
的不同元素,而不是第一个表达式。
我要指出的是,这几样副作用的语句都没有很好的编程形式尽管你经常会发现他们使用。
它是以下简写:
a = a + 1;
x += y;
相当于
x = x + y;
存在用于其他数学运算类似的运算符: - =,* =,/ =。例如:
x *= y;
相当于
x = x * y;
(编辑:上述假设不存在“副作用”在X;即,预增量或后置运算符被修改以反映泰德霍普的点。 )
它相当于
a = a + 1;
不完全等同。例如,如果'a'是'byte'或'short',那么'a + = 1'是合法的,但'a = a + 1'不起作用。问题是'a + 1'是一个'int',所以它必须通过一个cast来缩小,然后才能再次分配给'a'。 –
哇!我没有想到它!好评! :) – user278064
- 1. Java中的空间意味着什么?
- 2. 差异意味着
- 3. tmp_xxx在java中意味着什么?
- 4. @符号在java中意味着什么?
- 5. 这个java泛型意味着什么?
- 6. 分配时&& do /意味着什么? JAVA
- 7. “| =”在Java中意味着什么?
- 8. “SomeClass.this”在java中意味着什么?
- 9. $$ _ Javasassist_11在java中意味着什么?
- 10. 在AngularJS中结尾意味着什么double意味着
- 11. 什么呢JDBC:HSQLDB:hsqlTempFiles意味着
- 12. typedef的变化意味着
- 13. 的ViewController = _ViewController意味着
- 14. 意味着基于矩阵
- 15. 意味着对数据帧
- 16. {} \;意味着在unix命令?
- 17. malloc意味着什么(int *)?
- 18. 什么。意味着在PHP?
- 19. 配对意味着多组?
- 20. MYSQLI_NUM意味着什么?
- 21. Field.Index.NOT_ANALYZED_NO_NORMS意味着什么
- 22. $这意味着什么PHP?
- 23. 溢出意味着什么?
- 24. ř骨料意味着
- 25. HttpServletResponse.SC_BAD_REQUEST意味着什么?
- 26. 什么<?意味着
- 27. * | *这意味着什么CSS?
- 28. 过滤NA值意味着
- 29. shell脚本意味着
- 30. AccountExpirationDate意味着什么?
+1。我没有想到这一点。编辑我的答案以反映这一点。 –