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...