Java:数组,这里发生了什么?
我编写了下面的程序来处理数组
public class Tester{
public static void main (String[]args){
int [] nums = {1,3,6,1,2};
System.out.println(nums[0]);
System.out.println(nums[nums[1]]);
}
}
输出:
1
1
第二份打印声明中发生了什么?我还是搞不懂。如果我用6或2切换[1],我会得到一个错误,但不是3
# 1 楼答案
nums[1]
等于3,nums[3]
等于1,所以第二行打印出一行,该行的索引值存储在nums[1]
中,即3由于正在访问数组范围之外的位置,因此
System.out.println(nums[nums[6]]);
出现错误。同样的情况也会发生在System.out.println(nums[nums[2]]);
上,因为nums[2]=6