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/400815.html

回到顶部