C 多維陣列相關知識小結

2021-10-03 11:24:38 字數 2729 閱讀 9626

疫情所迫,希望用這種方法督促自己堅持學習。同時記錄在找工作過程中的艱辛不易。部落格內容持續增減修改,都為摘錄和個人理解。歡迎各位批評指正其中錯誤,相互勉勵,共同進步。

對於乙個3行4列的陣列可以理解為由3個大小為4的陣列所構成,多維陣列既陣列的陣列。多維陣列的定義如下:

int a[3]

[4];

//定義大小為3 x 4的整型陣列

int a[3]

[4]=

;//定義大小為3 x 4的整型陣列,並所有賦初值0

int a[3]

[4]=

,,};

//定義大小為3 x 4的整型陣列,每一行第乙個元素分別為0,1,2

int a[3]

[4]=

;//定義大小為3 x 4的整型陣列,第一行前三個元素為0,1,2

多維陣列的下標引用

注意改**中的乙個引用的用法,可以將二維陣列的其中某乙個元素提取出來

int arr[3]

[4][

5];int a[5]

[5];

a[2][

3]= arr[0]

[0][

0];//對多維陣列的元素單獨賦值

int(

&b)[5]

= a[1]

;//把b繫結到a的第二個5元陣列上

示例**一:

const

int row =3;

const

int col =4;

int arr[row]

[col]

;for

(int i =

0; i < row; i++

)for

(int j =

0; j < col; j++

) arr[i]

[j]= col*i + j;

int(

&temp)

[col]

= arr[1]

;//temp為arr第二個大小為4的陣列

cout << temp[0]

<< endl;

//輸出結果為4

示例**二:

下面**中,我們利用範圍for語句實現對二維陣列賦值。值得注意的是,如果需要對陣列元素讀寫,那麼所有層迴圈都要加引用。如果唯讀,則除了最內層迴圈不用加引用,其餘層全部加引用,不然會報錯。(具體原因不展開分析)

const

int row =3;

const

int col =4;

int arr[row]

[col]

;int a =0;

for(

auto

&i : arr)

//利用範圍for語句實現賦值

for(

auto

&j : i)

//注意此處i和j都是引用

j = a++

;cout << arr[1]

[0]<< endl;

//輸出結果為4

在陣列章節中我們已經分析並必須掌握三種指標與陣列結合的含義。在本章節中我們會結合多維陣列,再做一次複習總結。

示例**一:

注意對比分析二維陣列和一維陣列的區別,這裡對下面的用例不做過多的解釋,希望能夠自己分析清楚。

//二維陣列

const

int row =3;

const

int col =4;

int arr[row]

[col]

;int a =0;

for(

auto

&i : arr)

for(

auto

&j : i)

j = a++

;int

(*ip1)[4

]= arr;

//指向arr第一行陣列的指標

int(

*ip2)[4

]=&arr[0]

;//指向arr第一行陣列的指標

cout <<

*(ip1 +1)

[0]<< endl;

//輸出結果為4

cout <<

*(ip2 +1)

[0]<< endl;

//輸出結果為4

//一維陣列

int a[10]

=;int(

*p1)[10

]=&a;int

(&p2)[10

]= a;

int*p3 = a;

cout <<

(*p1)[1

]<< endl;

//輸出結果為1

cout <<(*

(p1 +1)

)[0]

<< endl;

//輸出結果為-858993460

cout <<

(*p1 +1)

[0]<< endl;

//輸出結果為1

cout << p2[1]

<< endl;

//輸出結果為1

cout <<

*(p3+1)

<< endl;

//輸出結果為1

陣列相關知識小結

1.一位陣列的建立和初始化 陣列的建立 陣列是 一組相同型別元素的集合。陣列的建立 方式 type t arr name const n type t 是指數組的元素型別 const n 是乙個常 表示式,用來指定陣列的大小 注意 陣列建立,中要給 乙個常 才可以,能使用變 陣列的初始化 陣列的初始...

多維陣列本質小結

include stdio.h include stdlib.h include string.h void main33 1 myarray陣列首元素的位址吧 2 myarray是乙個常量指標 3k 3 myarray是乙個陣列指標 int myarray 3 5 直接定義乙個陣列指標 int p...

指標與多維陣列小結

陣列 宣告 define size 10 int ch int get 10 int me size 表示方法ch 1 1 ch ch 0 ch 1 ch 1 get m n get m n int pz n pz m n get m n 復合標量 int 在宣告時同時使用陣列處理 include ...