【发布时间】:2015-04-20 20:45:35
【问题描述】:
我看不出为什么此代码段的输出在底部与顶部不同。
public static void main(String[] args) {
int[] list1 = {2, 4, 8, 16, 32, 64, 128, 256};
int[] list2 = list1;
int max = list1.length - 1;
for (int k = 0; k < list1.length; k++) {
System.out.print(list1[k] + " ");
list2[k] = list1[max - k];
}
System.out.print("\n");
for (int k = 0; k < list1.length; k++) {
System.out.print(list1[k] + " ");
}
}
输出:
2 4 8 16 32 64 128 256
256 128 64 32 32 64 128 256
输出的顶部是 list1 的内容。 我也在为第二个打印出 list1 ,但我认为它没有任何不同的理由。 list2 会改变,但 list1 永远不会改变。
这是来自学校的,我很困惑为什么两个输出不同。
编辑:
我知道这与 list2[k] = list1[max - k]; 有关,但我不明白为什么这会以任何方式改变 list1。
【问题讨论】:
-
如果我们的某个答案对您有所帮助,请接受一个作为答案。
标签: java arrays for-loop output