定义:数组里面的套数组,外数组的每一个元素都是一个数组(数组地址)
一:动态初始化
int[][] arry = new int[3][4];//定义了一个含有三个元素的数组,这三个元素又分别是3个包含4个元素的数组,及指定数组的长度,系统给默认值。
二:静态初始化
int[][] arry= {{2,3,5,6},{4,6,2},{4,7}};
或
int[][] arry = new int[3][];
arry[0] = new int[3];
arry[1] = new int[4];
arry[2] = new int[2];
静态初始化及给定数组的值,长度系统来自动分配;
三一维数组和二维数组的区别:
1.定义方式不同
一维数组的定义方式:int[] x; int x[];
二维数组的定义方式:int[][] y ; int y[][]; int[] y[];
int[] x, y[]; 这样定义那么x是一维数组,y是二维数组;
2。内部元素值不同
以int类型为例,一维数组的各元素值是int类型的值,二维数组的元素值是int类型的地址值(一维数组的地址值)。
练习:
int[] x,y[];
判断对错:
首先根据int[] x,y[]。可以看出x是一维数组,y是二维数组
a.
x[0] =y ;//error x[0]是int值,而y是地址值,故错误
b.
y[0] = x; //yes y[0]是一位数组的地址值,x是地址值,故正确
c.
y[0][0] =x;//error y[0][0]是int值,而x是地址值,故错误
d.
y[0][0] = x[0]//yes y[0][0]和x[0]都是int值,故正确