数据类型[][] 数组名 = new 数据类型[m][];
m:表达这个二维数组有多少个一维数组列表没有给出,可以动态给,这一次是一个变化的列数
数组更类似于C语言中的指针,二维数组就是声明了一个指针数组,指针数组可以指向不同长度大小的内存地址
/*
二维数组: 元素为一维数组的一个数组
格式1(动态):
数据类型[][] 数组名 = new 数据类型[m][n];
m个n元素的一维数
注意:
A:以下格式也可以表示二维数组
a、数据类型 数组名[][] = new 数据类型[m][n];
b、数据类型[] 数组名[] = new 数据类型[m][n];
格式2(动态):
数据类型[][] 数组名 = new 数据类型[m][];
m:表达这个二维数组有多少个一维数组
列表没有给出,可以动态给,这一次是一个变化的列数
格式3(静态):
数据类型[][] 变量名 = new 数据类型[][]{ {元素...},{元素...}};
简化:
数据类型[][] 变量名 = {{元素...},{元素...}};
举例:
int[][] arr = {{元素...},{元素...}};
每个大括号里面的一维数组里面个数可以不一样,需要区别同C语言中的数组
数组更类似于C语言中的指针,二位数组就是声明了一个指针数组,指针数组可以
指向不同长度大小的内存地址
*/
class ErWeiShuZu{
//格式1
public static void main1(String[] args){
int[][] arr =new int[2][3];
System.out.println(arr); //地址
System.out.println(arr[0]); //地址
System.out.println(arr[0]); //地址
System.out.println(arr[0][0]); //数组
}
//格式2
public static void main2(String[] args){
int[][] arr = new int[2][];
System.out.println(arr); //地址
System.out.println(arr[0]); //null
System.out.println(arr[1]); //null
System.out.println("----------------------");
//动态的为每一个一维数组分配空间
arr[0] = new int[2];
arr[1] = new int[3];
System.out.println(arr); //地址
System.out.println(arr[0]); //地址
System.out.println(arr[1]); //地址
System.out.println("----------------------");
System.out.println(arr[0][0]);//0
System.out.println(arr[1][0]);//0
}
//二维数组的遍历
public static void main(String[] args){
int[][] arr = {{1,2,3},{4,5,6},{7,8,9,10,15}};
for(int m =0;m < arr.length;m++)
{
for(int n = 0;n < arr[m].length;n++){
System.out.print(arr[m][n] + " ");
}
System.out.println();
}
}
}