C語言二維陣列

2022-08-09 21:27:13 字數 1614 閱讀 5330

一 :二維陣列

一維陣列的每乙個元素又是乙個陣列(陣列的陣列)

int a[3][4],定義乙個陣列,有3個元素,a[0]、a[1]、a[2]

a[0]  又是乙個一維陣列,有4個元素

二:二維陣列的定義及注意

格式:資料型別   二維陣列名[第一維的長度][第二維的長度]

int arr[3][4];

注意:1)陣列名不能和變數名重複

2)遵循識別符號命名原則

3)陣列的長度可以使用巨集定義

4)陣列的長度可以使用變數

int m,n;

scanf("%d,%d",&m,&n);

int arr[m][n];    //這種寫法是可以的 讓使用者輸入兩個值

sum(int x,int y,int arr[x][y]); //這種寫法也是可以的

三:二維陣列的初始化

1)定義的同時進行初始化

int a[5]=;

int a = ;

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

格式:int a[m][n]=,{},{}.....}

(1)完全初始化

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

int a1[2][3]=;  可以的

a[0][0]=1,a[0][1]=5,a[0][2]=2,

a[1][0]=3,a[1][1]=4,a[1][2]=8

//省略第一維的初始化,注意:第二維不能省略

int a[2]=,,};

//定義了3行2列的陣列

(2)部分初始化

int a3[2][2]=,};

int a5[2][2]=

指定元素的初始化

int a4[3][4]=,}

2)先定義後初始化

int a[4][3];

a[0][0]=12,a[0][1]=12,a[0][2]=12

a[1][0]=12,a[1][1]=12,a[1][2]=12

3)二維陣列的訪問

陣列名[行下標][列下標];

int a[3][4];     //最大下標  a[2][3]

a[0][0] = 13;

int [m][n]陣列

行下標範圍:0 ~ m-1

列下標範圍:0 ~ n-1

四:二維陣列的儲存細節

二維陣列在計算機記憶體中有兩種儲存方式:

1>按行以此儲存

2>按列以此儲存

//計算二維陣列占用的總得位元組數

size = sizeof(arr);

//計算一行占用多少個位元組

size = sizeof(arr[0]);

//計算乙個二維陣列的每一行有多少列

size = sizeof(arr[0])/sizeof(int);

//計算乙個二維陣列有多少行

size = sizeof(arr)/sizeof(arr[0]);

五:二維陣列跟函式的關係,同一維陣列也是分為兩種情況

1>陣列中得元素作為形參(值傳遞)

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 如果程式...