对于int a[] = new int[3];下列哪个叙述是错误的?( )

A. a.length的值是3。

B. a[1]的值是1。

C. a[0]的值是0。

D. a[a.length-1]的值等于a[2]的值。

我知道选B,但不知道为什么,可以讲清楚一点嘛?谢谢!

 public static void main(String args[]) {
        int[] a = new int[3];
        //打印结果 : [0, 0, 0]
        System.out.println(Arrays.toString(a));
    }

这个数组只定义了数组的元素个数为3,并没有定义元素分别是什么,int是基本数据类型,默认值是0,打印这个数组就是[0,0,0],A选项长度为3也就是元素个数为3,是正确的,C选项因为数组的索引都是从0开始,所以a[0]指的就是第一个元素,[0,0,0]的第一个元素也是0,所以也是正确,D选项a[长度-1]的值就是a[3-1],就是a[2],所以也是正确,B选项a[1]指的是数组中第二个元素,a[0,0,0]数组第二个元素也是0,所以是错误的,这样讲能理解吗

a[1] 表示数组中第2个元素(数组下标从0开始),int类型数组默认值0;所以选B

申请数组大小是3,所以length为3;新申请的数组所有元素默认值都是0。所以a[1]的值也是0