標準c語言03

KakoiiJJ發表於2020-10-20

陣列:
什麼是陣列:相同型別的變數的組合,是一種批量定義變數的方式
定義: 型別 陣列名[數量];
int arr[5]; == int num1,num2,num3,num4,num5;

使用:陣列名[下標];
下標:從0開始,範圍:0 ~ 數量-1

遍歷:與for迴圈配合使用,使用迴圈變數 i 當做陣列的下標

初始化:型別 陣列名[數量] = {1,2,3,4,5…};
1、陣列與普通變數是一樣預設值是隨機,為安全也要對陣列進行初始化
2、這種初始化語法只能在定義陣列時使用,而且不能整體賦值
3、如果初始化資料過多,編譯器會丟棄,併產生警告
4、如果初始化資料不足,編譯器則補0
5、初始化陣列時長度可以省略,編譯器會自動統計資料的個數,然後告訴陣列
sizeof(arr)/sizeof(arr[0]) == 陣列長度

練習1:定義一個長度為10的陣列並初始化,計算出最大值,最小值,以及平均值。
練習2:定義一個長度為10的陣列並初始化,進行升序排序

a b c d e
0 1 2 3 4

陣列越界:

為了程式的執行效率,不會檢查陣列的下標
陣列越界的後果:

1、一切正常
2、段錯誤
3、髒資料

練習3:定義一個長度為10的陣列並初始化,找出陣列中第二大的值。

二維陣列:
一維陣列相當於把變數排成一排,通過編號訪問。
二維陣列相當於把變數排成矩陣,通過行號和列號來訪問。

定義:型別 陣列名[行數][列數];
int arr[3][5];
[0,0][0,1][0,2][0,3][0,4]
[1,0][1,1][1,2][1,3][1,4]
[2,0][2,1][2,2][2,3][2,4]
使用:陣列名[行下標][列下標]
行下標: 0~行數-1
列下標: 0~列數-1
遍歷:需要與雙層for迴圈配合,外層迴圈負責遍歷行,內層迴圈負責遍歷列
for(int i = 0;i < 3;i++)
{
for(int j = 0;j < 5;j++)
{
printf("%d “,arr[i][j]);
}
printf(”\n");
}
初始化:型別 陣列名[行數][列數] = {{第一行},{第二行},{第三行}};

練習4:定義一個5*5二維陣列,找出陣列中的最大值的座標,然後計算出來這個位置周圍的和。

變長陣列:
定義陣列時使用變數作為陣列的長度,在程式碼編譯期間陣列的長度是不確定,當執行到陣列定義語句時,長度才能確定下來。
一旦陣列長度確定後,不能改變。

優點:可以根據實際情況來確定陣列的長度,能達到節約記憶體目的
缺點:不可以初始化

相關文章