gpt4 book ai didi

java - C 和 Java 中的后缀和前缀运算符产生不同的结果

转载 作者:行者123 更新时间:2023-11-30 20:51:27 25 4
gpt4 key购买 nike

我认为基本算术运算符在大多数语言中具有相同的优先级。但对于以下代码片段 -

int a = 5;
a = --a + a++;
//print a

C 编译器 (GNU GCC) 给出的结果为 9在java中我得到 8 。这是怎么回事?我认为应该是 8 ( 4 + 4 )

最佳答案

a = --a + a++;

这会调用 C 中的未定义行为

C99 §6.5: “2. Between the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be read only to determine the value to be stored.”

在此,您在上一个和下一个之间更改 a 的值两次 sequence point ,因此结果可以是任何东西。

关于java - C 和 Java 中的后缀和前缀运算符产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32023779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com