gpt4 book ai didi

Java 与 C 输出

转载 作者:搜寻专家 更新时间:2023-11-01 01:03:32 25 4
gpt4 key购买 nike

这可能看起来很简单,但它只是让我和我的 friend 们绊倒了......

让我们看下面的一段代码——在Java中

//........

int a=10;
a= a-- + a--;
System.out.print("a="+a);
//........

在c中

//........

int a=10;
a= a-- + a--;
printf("a= %d",a);
//.......

在前一种情况下,您在 C 中得到的输出为 19,而您得到的输出为 18。c中的逻辑是可以理解的,但是在java中呢?

在 java 中,如果它喜欢

int a=10;
a=a++;

在这种情况下,输出为 10。

那么逻辑是什么?

最佳答案

a = a-- + a-- 在 C 中导致未定义的行为。C 没有定义应该首先评估哪个减量。

a-- 评估 a 的值,然后递减 a,所以在 Java 中,a = a-- + a-- 的计算结果如下:

a = (10, a 减量) + (9, a 减量)

第二个操作数是 9,因为第一项导致 a 递减。

总结:使用该表达式,C 没有定义求值顺序。 Java 定义它是从左到右。

关于Java 与 C 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1497313/

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