前,后增量操作符在C,C,Java和C#

免责声明:这不是一个现实世界的例子。这只是这些语言如何工作的理论问题。

C/C++,C#和Java之间的区别是什么,当涉及到post&预增量运算符?

这是我得到与VC 10,Java 1.6和C#4

int a = 2;
int b = a++ + a++;
int c = ++a + a++ + a++;

      +-----+------+------+----+
      |  C  | C++  | Java | C# |
+-----+-----+------+------+----+
| a   |  7  |  7   |   7  |  7 |
+-----+-----+------+------+----+
| b   |  4  |  4   |   5  | 5  |
+-----+-----+------+------+----+
| c   | 15  |  15  |  16  | 16 |
+-----+-----+------+------+----+
Java和C#从左到右计算表达式,副作用立即可见。

在C中,子表达式的求值顺序是未指定的,并且在没有居间序列点的情况下修改同一对象两次是未定义的行为。

翻译自:https://stackoverflow.com/questions/6457130/pre-post-increment-operator-behavior-in-c-c-java-c-sharp

转载注明原文:前,后增量操作符在C,C,Java和C#