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