C,C ++,Java和C#之前和之后的增量运算符行为
免责声明: 这不是真实示例。这只是这些语言如何工作的理论问题。
C / C ++,C#和Java在后和前增量运算符之间到底有什么区别?
这就是我使用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 ++中,未指定子表达式的求值顺序,并且两次修改同一对象而没有插入顺序点的行为是未定义的行为。
以上是 C,C ++,Java和C#之前和之后的增量运算符行为 的全部内容, 来源链接: utcz.com/qa/403541.html