c語言課程筆記 陣列

2021-09-05 09:35:25 字數 2229 閱讀 1867

c語言課程筆記(陣列)

知識總結

一:一維陣列的定義和初始化

1.構成陣列的每個資料項稱為陣列元素;c語言通過陣列的下標實現對陣列元素的訪問。

2.注意:c語言中陣列的下標都是從0開始的。

3.注意,引用陣列元素時下標可以是整型變數,例如引用score的第i個元素用score[i] ,但在定義陣列時不能使用變數定義陣列的大小,即下面的定義是非法的。

int score[n]       /不正確的定義方式/

4.對一維陣列進行初始化時,可將元素初值放在=後面用一對花括號括起來的初始化列表中,即int score[5]={90,80,70,100,95};

5.當陣列被宣告為靜態儲存型別或外部儲存型別(即在所有函式外部定義)時,則在不顯式給出初值的情況下,陣列元素將在程式編譯階段自動初始化為0。

6.處理不合法資料的輸入(1<=month<=12時執行)

while(month<1 ‖month>12);

printf("the number of days is %d\n",days[month-1]);

容錯,保證合法

7.格式

型別 陣列名[元素個數];

二:二維陣列的定義和初始化

1.格式

型別 陣列名[第一維長度][第二維長度];

2.一維陣列在記憶體中占用的位元組數為:陣列長度×sizeof (基型別) ,二維陣列占用的位元組數為:第一維長度×第二維長度xsizeof(基型別)。

3.用sizeof運算子來計算乙個型別或者變數在記憶體中所佔的位元組數才是最準確可靠的方法,也有利於提高程式的可移植性。

4.注意,在不同編譯系統中,int型所佔的位元組數是不同的。

5.c語言中不帶下標的陣列名具有特殊的含義,它代表陣列的首位址。

6.注意,陣列第二維的長度宣告永遠都不能省略。

7.數字要定義成全域性陣列。

三:向函式傳遞一維陣列

1.若要把乙個陣列傳遞給乙個函式,那麼只要使用不帶方括號的陣列名作為函式實參呼叫函式即可(如程式第10行和第11行語句所示).注意,僅僅是陣列名,不帶方括號和下標

2.由於陣列名代表陣列第乙個元素的位址,因此用陣列名作函式實參實際上是將陣列的首位址傳給被調函式,之所以這樣是出於效能方面的考慮。

3.注意:陣列作函式形參時,陣列的長度可以不出現在陣列名後面的方括號內,通第用另乙個整型形參來指定陣列的長度。

四:排序和查詢

1.交換法排序、選擇法排序

2.線性查詢法(順序查詢)、折半查詢

3.線性查詢法:線性查詢陣列元素就是使用查詢鍵(search key)逐個與陣列元素進行比較以實現查詢。其查詢的基本過程為:利用迴圈順序掃瞄整個陣列,依次將每個元素與待查詢值比較;若找到,則停止迴圈,輸出其位置值;若所有元素都比較後仍未找到指定的資料值,則結束迴圈,輸出「未找到「的提示資訊。

4.當待查詢資訊有序排列時,折半查詢法比順序查詢法的平均查詢速度要快得多。折半查詢也稱為對分搜尋。

5.折半查詢法的基本思想為:首先選取位於陣列中間的元素,將其與查詢鍵進行比較。如果它們的值相等,則查詢鍵被找到,返回陣列中間元素的下標。否則,將查詢的區間縮小為原來區間的一半,即在一半的陣列元素中查詢。

五:向函式傳遞二維陣列

1.注意,當形參被宣告為一維陣列時,形參列表中陣列的方括號內可以為空。然而當形參被宣告為二維陣列時,可以省略陣列第一維的長度宣告,但不能省略陣列第二維的長度宣告。

可以解決的問題

1.可以解決有關矩陣的問題,例如計算矩陣邊緣元素之和、矩陣交換行、變幻的矩陣等等

利用二維陣列進行解決問題。

2.可以解決陣列的逆序重放、倒置排序等等,利用陣列獲得重新排序得到的陣列

3.可以解決一些有趣的問題,例如做遊戲,有趣的跳躍,石頭剪刀布,掃雷遊戲地雷數計算,校門外的樹等等,利用陣列的知識解決一些做遊戲的問題。

4.也可以解決一些向量積問題,尋找配對數,與指定數字相同的數的個數等等一些有關數字的問題。

總結:通過這一段時間對陣列的學習,雖然在這個過程中遇到了很多的問題,在寫程式的過程中也遇到了不少的問題,在一開始的時候,通常會直接輸入乙個陣列,而不會在for語句後面輸入陣列,現在我已經記住了它,其中,也會有搞不清情況的時候,但是在學習的過程中我也發現可以通過c語言的知識解決一些有趣的問題,可以解決一些做遊戲的問題,同時也將數學中所學到的有關矩陣的問題,即c語言可以解決很多的問題,這讓我對它產生了很大的興趣,困難不是問題,我們學到的是可以用c語言的知識來解決一些問題。在這一段的學習中,我慢慢從不會用陣列解題到慢慢地對它有了了解,一點點地學習c語言中有關陣列的知識,這一過程中,我學到了很多的知識。

C語言筆記 陣列

筆記內容為自學郝斌老師c語言課程時所作 如果對於基礎知識點有遺忘可以借鑑下 遼寧工業大學 電子202 宋家盛 如有錯誤,可通過jff 16 163.com聯絡 陣列 陣列型別 陣列名 元素個數 例如 int a 2 元素表示 a 0 1 a 2 2 即a i 表示第i 1個元素 為什麼使用陣列?1....

C語言學習筆記《陣列》

1,已知陣列x有5個元素,精組y有6個元素.請分別對x和y排序。輸出x和y排序後的元素 include main y 6 int i,j,sum 0 for i 0 i 4 i int i,j,sum for i 0 i 9 i for i 0 i 9 i printf d t a i code c...

C語言學習筆記 陣列

陣列是用來儲存乙個固定大小的同型別元素的順序集合。type arrayname arraysize intarray 5 int array intarray 5 include int main int argc,const char argv int i for i 0 i 5 i 多維陣列最簡...