如果我们在链中为变量赋值,如下所示,
int x=10, y=15;
int z=x=y;
System.out.println(x+" : "+y+" : "+z);
那么所有三个变量的值x
,y
和z
变为15
。
但是,我不理解数组的以下现象。
int array[]={10, 20, 30, 40, 50};
int i = 4;
array[i] = i = 0;
System.out.println(array[0]+" : "+array[1]+" : "+array[2]+" : "+array[3]+" : "+array[4]);
它输出10 : 20 : 30 : 40 : 0
. array[4]
它用替换最后一个元素的值0
。
关于之前的赋值语句 - int z=x=y;
,我希望第一个元素的值意味着array[0]
替换为0
. 为什么不是这样?这很简单,但我无法弄清楚。你能解释一下吗?
顺便说一句,这个赋值语句array[i] = i = 0;
是虚拟的,它在这段代码中没有自己的价值,不应该再使用,但我只是想知道在这种情况下事情是如何工作的。