【C++】小議二維數(shù)組

一、二維數(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 4,265評(píng)論 2 13
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,607評(píng)論 3 44
  • 謹(jǐn)記 每個(gè)人心中都有一片海,自己不揚(yáng)帆,沒人幫您啟航,久了就是一片死海。人生,就是一場(chǎng)自己與自己的較量:讓積極打敗...
    長(zhǎng)風(fēng)留言閱讀 8,145評(píng)論 6 10
  • 在C語言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,007評(píng)論 0 2
  • 像魚兒一樣追隨飛鳥
    別想其他的閱讀 102評(píng)論 0 0

友情鏈接更多精彩內(nèi)容