今天來談談與數組相關的知識。
一、解析一維數組的創建和初始化
1.int a[10];//創建一個大小爲10個整型元素的數組。
2.int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};//創建一個大小爲10個整型元素的數組並初始化
3.int a[10] = {0, 1, 2, 3, 4};//創建一個大小爲10個整型元素的數組並部分初始化,未初始化部分全部補零
4.int a[] = {0, 1, 2, 3, 4};//創建一個數組並初始化,初始化後素組大小爲5個整型元素。
5.int a[];//不能這樣創建數組(不指定大小且不初始化)。
二、一維數組的使用
若有int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
則有a[0] == 0; a[1] == 1; a[2] == 2; ……
三、一維數組的存儲
數組元素順序存放。
四、一維數組的指針訪問
數組名是指針,指針指向數組的首地址。
若int a[10];
則有a == &a[0]; *a == a[0]; *(a+1) == a[1]; ……
五、解析二維數組的創建和初始化
int a[2][3];//創建一個二維數組
int a[2][3] = {{0, 1, 2}, {3, 4, 5}};//創建一個二維數組並分行初始化
int a[2][3] = {0, 1, 2, 3, 4, 5};//創建一個二維數組並不分行初始化
int a[2][3] = {{0, 1}, {3}};//創建一個二維數組並分行部分初始化,其餘自動補零
int a[2][3] = {0, 1, 2, 3};//創建一個二維數組並不分行部分初始化,其餘自動補零
int a[][3] = {0, 1, 2, 3, 4, 5};//創建一個二維數組並初始化,默認爲兩行
int a[][] = {0, 1, 2, 3, 4, 5}; int a[2][] ={0, 1, 2, 3, 4, 5};//不能這樣創建數組
六、二維數組的使用
若有int a[2][3] = {0, 1, 2, 3, 4, 5};
則有a[0][0] == 0; a[0][1] == 1; a[0][2] = 2; a[1][0] == 3; a[1][1] == 4; a[1][2] == 5;
七、二維數組的存儲
若有a[2][3]
則按照a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2]的順序儲存(行優先)
八、二維數組的指針訪問
若有a[2][3]
則有a爲第一行的地址,a+1爲第二行的地址,*(a+1)+1爲第二行第二列元素的地址。