黑馬程式設計師 c語言 陣列學習

2021-07-04 01:57:14 字數 2851 閱讀 2908

使用陣列為了方便一次性定義多個變數,同時為了方便使用這些變數

乙個陣列就是多個變數的有序集合

1)定義乙個陣列,就定義了很多的變數

2)這每乙個變數都是陣列的乙個元素或成員

3)陣列是乙個有序的集合,也就是說可以使用乙個數字引用變數

4)陣列中每乙個元素的使用和乙個一般的變數使用一樣

一維陣列是元素都不是陣列的陣列

1)陣列元素是乙個簡單的型別或其他非陣列的型別

2)一維陣列好比一串羊肉串,乙個元素挨著乙個元素

3)乙個陣列只允許儲存一種資料型別的資料

語法:

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

1)資料型別表示陣列中每乙個元素的型別

2)陣列的名字就是乙個識別符號

3)陣列長度可以是乙個表示式,表示陣列裡面有幾個變數,常常稱為陣列的長度

例如:int nums[3];

表示定義了乙個名字為 nums 的陣列. 使用 nums 這個名字引用陣列,陣列裡面有 3 個變數,都是 int 型別的

例如:char chs[10];

表示定義了乙個長度為 10 的,儲存 char 型別的陣列

注意:早期 c 語言不允許使用變數定義陣列

c99 標準中允許使用變數定義陣列長度

先定義再初始化,使用下標為每乙個元素賦值

語法是 陣列名[下標]

int nums[5];

nums[0] = 1;

nums[1] = 2;

nums[2] = 3;

nums[3] = 4;

nums[4] = 5;

定義的同時進行初始化

1)完全初始化

int nums[5] = ;

2)不完全初始化,沒有提供資料的預設初始化為 0 

int nums[10] = ;

3)省略陣列長度,由編譯器自動判斷

int nums = ;

引用陣列元素表示使用陣列中的每乙個變數

使用下標引用陣列中指定的變數

語法:陣列名[ 下標 ]

例如:int nums = ;

printf("%d\n", nums[0]);

printf("%d\n", nums[1]);

printf("%d\n", nums[2]);

引用陣列元素和使用指定型別變數一樣,可以讀取資料賦值等

1)讀取資料

2)獲取資料(列印,計算)

3)自增等

使用 for 迴圈對陣列進行遍歷

for (int i = 0; i < length; i++)

1、氣泡排序:

氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。

2、氣泡排序演算法的運作如下:

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

2)對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。

3)針對所有的元素重複以上的步驟,除了最後乙個。

4)持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

3)演示與分析

如果儲存的資料為:12,3,40,25,7

如果需要排序,根據氣泡排序的思想分為下面幾步:

1)第一輪,兩兩比較

12和3比,交換得到:3,12,40,25,7

12和40比,不變:3,12,40,25,7

40和25比,交換:3,12,25,40,7

40和7比,交換:3,12,25,7,40

2)第二輪,兩兩比較

3與12比較,不變:3,12,25,7,40

12與25比較,不變:3,12,25,7,40

25與7比較,交換:3,12,7,25,40

3)第三輪,兩兩比較

3與12比較,不變:3,12,7,25,40

12與7比較,交換:3,7,12,25,40

4)第四輪,兩兩比較

3與7比較,不變:3,7,12,25,40

排序完成

for (int i =0;i <10 ;i ++)

}}

二維陣列名作為函式引數,就是將二維陣列的首位址作為引數傳遞給函式,定義語法為:

void func( int nums[2][3], int row, int column )

注意:引數第乙個數字可以省略

特點:函式內與函式外可以看成是同乙個二維陣列

#include #define row 6

#define col 6

int main(int argc, const char * argv) ,,,

,,

};char input ;

int x=1;

int y=1;

while (1)

}switch (input)

break ;

case 's':

if (map [x+1][y]==' ')

break;

case 'a':

if (map [x][y-1]==' ')

break;

case 'd':

if (map [x][y+1]==' ')

break;

}system ("clear");

}printf("恭喜你重獲自由...\n");

return 0;

}

黑馬程式設計師 學習C語言陣列

陣列 陣列的基本概念 把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。特點 只能存放一種型別的資料,如全部是int型或者全部是char型,陣列裡的資料成為元素。陣列的分類 按儲存的內容分類 數值陣列 字元陣列 指標陣列 結構陣列 按維度分類 一維陣列 二位陣列...

黑馬程式設計師 C 陣列的學習

陣列的知識點學習 陣列是通用的資料結構,在c 當中使用陣列,需要建立system.array型別的物件。陣列是可索引的資料的集合。資料的型別既可以是內建的,也可以是自定義的 c 當中陣列就是物件本身。陣列是system.array類的乙個宣告的例項,在使用陣列的時候,也可以使用此類的所有方法和屬性。...

黑馬程式設計師 C語言指標與陣列

1 指標與位址 一元運算子 用於取乙個物件的位址,因而語句 p c 用於將c的位址賦給變數p,並且說p是指向c的指標。一元運算子 是間接定址或間接引用運算子,當它應用於指標時,它將訪問指標所指向的物件。由於指標也是變數,所以在程式中不必通過間接引用的方法就可以直接使用它們。例如,如果i q是另乙個指...