數據類型[][] 數組名 = 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();
}
}
}