C 基礎語法入門 5 陣列

2021-10-18 14:15:34 字數 4281 閱讀 4116

5.3 二維陣列

黑馬程式設計師匠心之作|c++教程從0到1入門程式設計

學習筆記

目標:對c++有初步了解,能夠有基礎程式設計能力

案例:通訊錄管理系統

特點一:陣列,就是乙個集合,裡面存放了相同型別的資料元素

特點二:陣列是由連續的記憶體位置組成的

定義有三種方式:

資料型別_資料名[陣列長度];

int arr[3]

;arr[0]

=10;arr[1]

=11;arr[2]

=12;

資料型別_資料名[陣列長度]=;
//如果沒有寫全會預設為0

int arr2[5]

=;//輸出所有元素

for(

int i =

0; i <

5; i++

)

資料型別_陣列名=
//定義陣列的時候必須有乙個初始長度

int arr3=

;

可以統計整個陣列在記憶體中的長度

int arr[10]

=;cout <<

"整個陣列記憶體為:"

<<

sizeof

(arr)

<

//40

//每個int佔四個位元組,一共4*10個位元組

cout <<

"每個元素的佔的記憶體:"

<<

sizeof

(arr[0]

)<< endl;

//4cout <<

"陣列中的元素個數為:"

<<

sizeof

(arr)

/sizeof

(arr[0]

)<

輸出

整個陣列記憶體為:40

每個元素的佔的記憶體:4

陣列中的元素個數為:10

可以獲取陣列在記憶體中的首位址

cout<
輸出

0096fe80
一般是十六進製制數,可以轉化為十進位制

cout<<

int(arr)

<

cout<<

<<

&arr[0]

<

//&為取址符號,表示要看元素的位址

注意:陣列名是乙個常量,不可以進行賦值操作

練習:五隻小豬稱體重

#include

using

namespace std;

intmain()

;int max =0;

for(

int i =

0; i <

5; i++)}

cout << max << endl;

system

("pause");

return0;

}

練習:陣列元素逆置

法一:

#include

using

namespace std;

intmain()

;int arr2[5]

=;for(

int i =

0; i <

sizeof

(arr)

/sizeof

(arr[0]

; i++

)system

("pause");

return0;

}

法二:

#include

using

namespace std;

intmain()

;int start =0;

int end =

sizeof

(arr)

/sizeof

(arr[0]

)-1;

while

(start

for(

int i =

0; i <

5; i++

)system

("pause");

return0;

}

作用:最常用的排序演算法,對陣列內元素進行排序

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個

對每一對相鄰元素做同樣的工作,執行完畢後,找到第乙個最大值

重複以上步驟,每次比較次數-1,直到不需要比較

#include

using

namespace std;

intmain()

;for

(int j =

9; j >

0; j--)}

cout << arr[j]

<< endl;

}system

("pause");

return0;

}

定義的四種方式:

資料型別_陣列名[行數][列數];

#include

using

namespace std;

intmain()

}system

("pause");

return0;

}

陣列型別_陣列名[行數][列數]=,};建議:用第二種方式,更加直觀

int arr2[2]

[3]=,};

資料型別_陣列名[行數][列數]=;
int arr3[2]

[3]=

;

資料型別_陣列名[列數]=;
int arr4[

3]=;

作用:

檢視占用空間大小

sizeof

(arr)

//第一行占用記憶體

sizeof

(arr[0]

)//每個元素

sizeof[0

][0]

//計算有多少行多少列

sizeof

(arr)

/sizeof

(arr[0]

)//有多少行

sizeof

(arr[0]

)/sizeof

(arr[0]

[0])

//有多少列

可以檢視二維陣列首位址

cout << arr << endl;

//第一行首位址

cout << arr[0]

<< endl;

//第二行首位址

cout << arr[1]

<< endl;

//第乙個元素首位址,取元素的首位址的時候,要取址符

cout <<

&arr[0]

[0]<< endl;

練習:有三名同學考試成績如圖,分別輸出三名同學的總成績

示例**

#include

using

namespace std;

#include

;int

main()

,,};

string name[3]

=;for(

int i =

0; i <

3; i++

) cout << name[i]

<<

"的總成績是:"

<< sum << endl;

}system

("pause");

return0;

}

輸出

張三的總成績是:300

李四的總成績是:240

王五的總成績是:210

C 基礎語法入門 5 陣列

2.二維陣列 所謂陣列,就是乙個集合,裡面存放了相同型別的資料元素。特點1 陣列中的每個資料元素都是相同的資料型別 特點2 陣列是由連續的記憶體位置組成的 資料型別 陣列名 陣列長度 資料型別 陣列名 陣列長度 資料型別 陣列名 可以通過下標來訪問陣列中的元素,從0開始索引 int arr 5 fo...

零基礎入門C 5 陣列

3 二維陣列 所謂陣列,就是乙個集合,裡面存放了相同型別的資料元素 特點1 陣列中的每個資料元素都是相同的資料型別 特點2 陣列是由連續的記憶體位置組成的 一維陣列定義的三種方式 資料型別 陣列名 陣列長度 資料型別 陣列名 陣列長度 資料型別 陣列名 示例 include using namesp...

C 基本語法,入門及提高(5)

容易混淆的 函式指標 指標函式 陣列指標 指標陣列 類模板 模板類 函式模板 模板函式。c 包含過程程式設計,面對物件程式設計和通用程式設計 模板 c只有過程程式設計.有符號和無符號int的區別 int就是signed int,書上寫的時候都是用 signed int表示signed可以省略,int...