您的位置:首页 > 编程语言 > Java开发

Java二维数组的错误写法分析

2019-05-31 08:39 141 查看

参考地址:http://c.biancheng.net/view/916.html

声明的正确写法:

[code]int [][] temp = new int[2][];	//限定了一维数组的个数
int [][] temp = new int[2][3];	//限定了一维数组的个数和每个一维数组的长度
int [][] temp;	//对一维数组的个数和一维数组的长度都没有限定
int [][]temp = new int [][] {{1},{2,3}};	//声明的同时初始化二位数组

定义的正确写法:

[code]int [][] temp = new int[2][];	//限定了一维数组的个数
temp[0] = new int[] {1,2,3};
temp[1] = new int[] {3,4,5};
//temp[2] = new int[] {6,7,8};	//这句编译的时候不会出错,但运行的时候会抛出数组越界异常

 

错误示范1:

[code]int [][] temp;
temp[0] ={1,2,3,4};	//不能通过编译
System.out.println(temp[0][0]);

/*temp[0]是存的是地址,指向一维数组*/

正确示范1: 

[code]int [][] temp;
temp = new int[][] {{1},{2,3}};	//正确写法
System.out.println(temp[0][0]);	//1

错误示范2:

[code]int [2][] temp;	//编译出错

正确示范2: 

[code]int [][] temp = new int[2][];	//可以只声明一维数组的个数,不可以只声明一维数组的长度
temp[0] = new int[] {1};
temp[1] = new int[] {2};
temp[2] = new int[] {2};
System.out.println(temp[1][0]);

 

错误示范3:

[code]int [][] temp = new int[2][3];	//限定了一维数组的个数和每个一维数组的长度
temp[0] = new int[] {1,2,3,2};  //超出了限定的一维数组的长度也没有报错,而且可以正常输出
temp[1] = new int[] {3,4,5};
for(int i=0;i<temp.length;i++) {
for(int j=0;j<temp[i].length;j++) {
System.out.print(temp[i][j]);
}
System.out.println();
}

/*重新new了一行,每行的个数重新定义了*/

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: