一、數組大小
數組的大小是一個很重要的概念,它決定了數組中能存儲多少元素。在C語言中,使用如下方式定義二維數組的大小:
int arr[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} };
其中3表示數組的行數,4表示數組的列數,也就是說數組的總大小為3*4=12。
在TS中,定義一個二維數組也非常簡單:
let arr: number[][] = [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], ];
可以看到,在TS中定義二維數組的方式與C語言類似,只是將數據類型和數組名放在了一起。
二、數組的初始化
對於C語言來說,要初始化一個二維數組可以使用如下方式:
int arr[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} };
其中每一個{}代表一行元素,花括號內的元素用逗號分隔即可。
在TS中同樣也可以採用類似的方式來初始化一個二維數組。例如:
let arr: number[][] = [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], ];
上面的代碼中,我們定義了一個3*4的二維數組,並將其初始化為從0到11。需要注意的是,我們在TS中定義數組時,數據類型要和數組名放在一起,並且數組的聲明後要加上[]=。
三、數組的訪問
在C語言中,要訪問一個二維數組中的元素,可以使用如下方式:
int arr[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} }; int val = arr[1][2]; printf("val=%d\n", val);//輸出:val=6
這段代碼中,我們定義了一個3*4的二維數組,並將它的第2行第3列的元素賦值給了變量val。
在TS中同樣也可以採用類似的方式來訪問一個二維數組中的元素。
let arr: number[][] = [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], ]; let val = arr[1][2]; console.log(val); //輸出:6
四、數組的遍歷
數組遍歷是數組操作中最常用的操作之一。在C語言中,常用的方式包括for循環和雙重for循環:
int arr[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%d ", arr[i][j]); } printf("\n"); }
在TS中,同樣可以使用for循環和雙重for循環來遍歷二維數組。
let arr: number[][] = [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], ]; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr[i].length; j++) { console.log(arr[i][j]); } }
上面的代碼中,我們使用雙重for循環來遍歷一個二維數組,並將其中的元素輸出。
五、數組複製
在C語言中,要複製一個二維數組,可以使用如下方式:
int arrSource[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} }; int arrTarget[3][4]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { arrTarget[i][j] = arrSource[i][j]; } }
在TS中同樣可以採用類似的方式來複制一個二維數組。例如:
let arrSource: number[][] = [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], ]; let arrTarget: number[][] = []; for (let i = 0; i < arrSource.length; i++) { arrTarget.push([]); for (let j = 0; j < arrSource[i].length; j++) { arrTarget[i][j] = arrSource[i][j]; } }
上面的代碼中,我們定義了一個二維數組arrSource,並將其複製到了另一個二維數組arrTarget中。
六、多維數組
在C語言中,還可以定義多維數組,例如3維數組:
int arr[2][3][4] = { { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }, { {12, 13, 14, 15}, {16, 17, 18, 19}, {20, 21, 22, 23} } };
在TS中,我們可以採用類似的方式定義多維數組:
let arr: number[][][] = [ [ [0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11] ], [ [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23] ] ];
上面的代碼中,我們定義了一個3維數組arr,並將其初始化為一個3*4的二維數組。
七、總結
在TS中,二維數組的操作和C語言類似,只是語法有所不同。在定義數組大小、初始化、訪問、遍歷、複製等方面,我們可以採用類似的方式來實現。另外還可以通過多維數組來實現更複雜的數據結構,例如3維數組。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/288916.html