Board logo

标题: 数组越界的问题 [打印本页]

作者: wing    时间: 2011-8-18 12:26     标题: 数组越界的问题

在看入门123,在看数组的时候有这样一个问题
public class Bird06 {
        public static void main(String[] args) {
                int students[][] = new int[1][9];
                int classOne[];
                int classTwo[];
                classOne = students[0];
                classTwo = students[1];
        }
}
以上是看完书后自己试的。
报错: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at Bird06.main(Bird06.java:8)
把 int students[][] = new int[1][9]; 改成 int students[][] = new int[2][9]; 就没错了

classTwo = students[1]; classTwo 指向的是 students[1]; 自己理解应该没有越界的问题, 反复看图,也看不出个所以然来, 可以帮忙解释一下为什么吗?
作者: fwbook    时间: 2011-8-19 08:53

你对申明和引用理解有一点偏差。
声明的时候 int[1]  表示数组只有一个元素。这个时候引用时候的下标只能是0

声明的时候 int[2]  表示数组有两个元素。引用下标可以为0、1

二维数组同样的道理。估计这样,你知道代码为什么报错了。
作者: wing    时间: 2011-8-19 13:16

感谢解释, 现在觉得明白了




欢迎光临 万卷图书 (http://wanjuanchina.net/) Powered by Discuz! 7.0.0