C 和 Java 中的逻辑差异
在C中编译并运行此代码
#include <stdio.h>
int main()
{
int a[] = {10, 20, 30, 40, 50};
int index = 2;
int i;
a[index++] = index = index + 2;
for(i = 0; i <= 4; i++)
printf("%d\n", a[i]);
}
输出:10 20 4 40 50
现在在Java中使用相同的逻辑
class Check
{
public static void main(String[] ar)
{
int a[] = {10, 20, 30, 40, 50};
int index = 2;
a[index++] = index = index + 2;
for(int i = 0; i <= 4; i++)
System.out.println(a[i]);
}
}
输出:10 20 5 40 50
为什么两种语言的输出有差异,输出是可以理解的,但我无法理解输出Java
C
还有一件事,如果我们应用前缀运算符,我们在两种语言中都会得到相同的结果,为什么?++