C語言 二維陣列

2021-08-28 22:00:45 字數 2152 閱讀 5667

(一)二維陣列的建立

二維陣列定義的一般形式:型別說明符 陣列名[常量表示式][常量表示式]

舉例如下:

int a[3][4];

//定義a為 3*4(3行4列) 的陣列。

二位陣列又可以看作是一種特殊的一維陣列:它的元素又是乙個一維陣列。

舉例如下:

int a[3][4];

//可以看作a是乙個一維陣列,它有3個元素:a[0],a[1],a[2]。

//每個元素又是乙個包含四個元素的一維陣列。此時a[0],a[1],a[2]做一維陣列名。

//a[0]——a[0][0],a[0][1],a[0][2],a[0][3]

//a[1]——a[1][0],a[1][1],a[1][2],a[1][3]

//a[2]——a[2][0],a[2][1],a[2][2],a[2][3]

二維陣列中元素在記憶體中是連續存放的,元素的排列順序是按行排放的,即izai記憶體中先存放第一行的元素,緊接著存放第二行的元素,以此類推…是線性的,不是二維的。

(二)二維陣列的初始化

int a[3][4] = , ,  };

int a[3][4] = ;

//這兩行**等價

//結果為:1 2 3 4

// 5 6 7 8

// 9 10 11 12

//第1行**是分行給二位陣列賦值。

//2行**是將所有資料寫在花括號內,按陣列元素在記憶體中的排列順序對各元素賦值。

int a[3][4] = , , };

//對部分元素賦值。

//結果為:1 0 0 0

// 2 0 0 0

// 3 0 0 0

int a[3][4] = , , };

//對每一行中的部分元素賦值

//結果為:1 0 0 0

// 0 2 0 0

// 0 0 3 0

int a[3][4] = , };

//只對某幾行元素賦初值

//結果為:1 0 0 0

// 3 4 0 0

// 0 0 0 0

注意:在某些情況下行的長度可省略,但是在任何情況下列的長度都不能省略!

//如果對全部元素都賦初值,則定義陣列時對一維的長度可以不指定。

//下面兩行**等價。

int a[3][4] = , , };

int a[ ][4] = , , };

//結果為:1 2 3 4

// 5 6 7 8

// 9 10 11 12

//在定義時也可以只對每行元素都賦初值,此時省略一維的長度。

int a[ ][4] = , , };

//結果為:1 0 0 0

// 2 0 0 0

// 3 0 0 0

(三)二維陣列的使用

*二維陣列也是通過訪問的。

*二維陣列大小的計算:

**如下:

int a[3][4] = ;

int sz_i = sizeof(a) / sizeof(a[0]);

int sz_j = sizeof(a[0]) / sizeof(a[0][0]);

二維陣列的舉例:

(1)舉例1

//輸入並列印乙個二維陣列

#include #include int main()

;int i, j;

for(i = 0;i < 3;i++)

printf(" \n");

} system("pause");

return 0;

}

(2)舉例2

C語言二維陣列

int main int argc,const char argv int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維陣列只能省略第一位 第乙個 3 可以不寫 第二種初始值寫法 ...

C語言 二維陣列

c語言之二維陣列 1 定義的基本格式 int a 1 2 1代表一行,2代表二列 難點 二維陣列的行列下標。字串結束標誌的實用。2 一維陣列和二維陣列的聯絡。一維陣列如同千層面一樣一層一層的,而二維陣列,只是給千層面切了幾刀 3 int a 2 3 a 0 0 是1,a 0 1 是2,a 0 2 是...

C語言 二維陣列

1 陣列名稱不可以代表儲存區 2 陣列名稱可以代表陣列裡第乙個儲存區的位址 3 可以對陣列名稱進行sizeof計算,結果是陣列裡所有儲存區的總大小 4 c99規範裡可以使用變長陣列,宣告變長陣列的時候可以用變數表示陣列裡的儲存區個數 5 某一次程式執行過程中變長陣列裡儲存區個數不會變化 6 如果程式...