一、二維數(shù)組的介紹
當(dāng)數(shù)組元素具有兩個(gè)下標(biāo)時(shí), 該數(shù)組稱為二維數(shù)組。 二維誰可以看做具有行和列的平面數(shù)據(jù)結(jié)構(gòu)。
二、二維數(shù)組的定義
定義二維數(shù)組的形式:
??數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式1][常量表達(dá)式2] ;
?? ?數(shù)據(jù)類型是數(shù)組全體元素的數(shù)據(jù)類型, 數(shù)組名用合法的標(biāo)識(shí)符表示, 兩個(gè)整型常量表達(dá)式可以理解為分別代表行數(shù)和列數(shù), 與一維數(shù)組相同, 數(shù)組元素的下標(biāo)一律從 0 開始。例如:
該語句表示:
①.?定義了一個(gè)二維數(shù)組a, 其數(shù)據(jù)類型為int型;
②.?a數(shù)組有3行5列, 共能容納 3*5 = 15 個(gè) int 型的數(shù)據(jù);
③.a數(shù)組的行下標(biāo)為 0, 1, 2, 列下標(biāo)為 0, 1, 2, 3, 4 , 所有元素的位置可表示為;
④.?程序運(yùn)行時(shí)將為a數(shù)組在內(nèi)存中開辟 3*5* 4(字節(jié)) = 60個(gè)字節(jié)連續(xù)的存儲(chǔ)單元;
三、二維數(shù)組的使用
同一維數(shù)組一樣, 引用二維數(shù)組的元素, 也是引用他的數(shù)組元素, 數(shù)組元素的形式為:
數(shù)組名[行下標(biāo)][列下標(biāo)] ;
例如, 若定義 int a[3][5], i = 2, j = 4 ; 則下列引用都是合法的
使用舉例:
1>. 輸入一個(gè) 2x3 大小的二維數(shù)組, 輸入完畢后再全部輸出
四、二維數(shù)組的初始化
二維數(shù)組初始化的形式為:
?????數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式1][常量表達(dá)式2] = { 初始化數(shù)據(jù) } ;
在 { } 這給出各數(shù)據(jù)元素的初始值,各初值之間用逗號(hào)隔開。把 { } 中的初值依次賦給各數(shù)組元素。有如下幾種初始化方式:
1>.?分行進(jìn)行初始化

?? ??? ??? ?在 { } 內(nèi)部再用 {} 進(jìn)行分開, 第一組 {} 中的初始值 1, 2, 3 是下標(biāo)為 0 行的3個(gè)元素的初值。 第二對(duì) {} 中的值 4, 5, 6 是下標(biāo)為 1 行的 3 個(gè)元素的初值, 相當(dāng)于執(zhí)行如下語句:

注意:?初始化的數(shù)據(jù)個(gè)數(shù)不能超過數(shù)組元素所能容納的個(gè)數(shù), 否則會(huì)出錯(cuò)。
2>.?不分行初始化
?? ??? ??? ?把 { } 中的數(shù)據(jù)依次賦值給 a 數(shù)組各元素(按行賦值), 即:

??3>. 為部分?jǐn)?shù)據(jù)元素初始化

第一行只有2個(gè)初值, 按順序分別賦值給 a[0][0] 和 a[0][1], 第二行的初值 4 賦給 a[1][0]。
?4>.?省略第一維的定義, 但不能省略第二維的定義

系統(tǒng)能夠根據(jù)初始化元素的個(gè)數(shù)和第二維的長(zhǎng)度來確定第一維的長(zhǎng)度。一般, 省略第一維定義時(shí), 第一維的大小按如下規(guī)則確定:
a.初值個(gè)數(shù)能被第二維整除, 所得的商就是第一維的大??;
b.若不能整除, 第一維的大小為商再加 1。例如:

? ? ? ? 等價(jià)于:?? ? ? ? ? ? ??

c.若分行初始化, 也可以省略第一維的定義, 如:? ? ? ? ? ? ?

其中 { } 中又包括 兩個(gè) {} , 這代表數(shù)組 a 的第一維大小為 2。
五、二維數(shù)組應(yīng)用舉例
如圖, 將 圖a中所示的數(shù)組轉(zhuǎn)成如 圖b所示的情況(也成矩陣轉(zhuǎn)置):

參考代碼:

六、二維字符數(shù)組
二維字符數(shù)組常用來存放字符串, 二維字符數(shù)組每一行可以看做一維字符數(shù)組, 即二維字符數(shù)組的每一行可以存放一個(gè)字符串。
1>.?二維字符數(shù)組的定義:
二維字符數(shù)組的定義與一般二維數(shù)組的定義方式相同, 只是數(shù)據(jù)類型為 char。例如:
char a[3][10] ;
二維字符數(shù)組 a 有2行5列, 每一行可以存放長(zhǎng)度小于或等于4的字符串(不要忘了要給字符串結(jié)束標(biāo)識(shí)符留一個(gè)位置)。
2>.?二維數(shù)組的初始化:
和一維字符數(shù)組一樣, 二維字符數(shù)組也可以在定義時(shí)初始化, 如:

?? ??? ?將二維字符數(shù)組圖示展開如下(二維字符數(shù)組a, 3行10列):

3>.?二維字符數(shù)組的使用
由于在二維字符數(shù)組每個(gè)字符串單獨(dú)占一行, 所以可以用 a[n] 引用該二維數(shù)組字符中第 n 行的字符串, 也可以用 a[i][j] 引用某行某列中的單獨(dú)一個(gè)字符串。
示例:?輸入二維字符數(shù)組中每行中的字符串
????C++語言對(duì)數(shù)組的維數(shù)沒有限制, 因此你還可以根據(jù)一維和2維的規(guī)律使用 3 維數(shù)組或更高維的數(shù)組, 但是在高維數(shù)組上的處理比較難理解, 不熟練的情況下容易出錯(cuò), 因此對(duì)于 3 維以上的數(shù)組請(qǐng)酌情使用。
老九學(xué)堂出品,轉(zhuǎn)載請(qǐng)私信哦
對(duì)于文章內(nèi)容有不理解的可以添加老九君個(gè)人QQ:614940318,請(qǐng)備注來自簡(jiǎn)書
老九學(xué)堂免費(fèi)C、C++、Java課程地址:
https://study.163.com/courses-search?keyword=%E8%80%81%E4%B9%9D%E5%AD%A6%E5%A0%82