陣列(array)就是一些列具有相同型別的資料的集合。
c語言陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。
陣列的定義:
datatype arrayname[length];
如:
float m[12]; //定義乙個長度為 12 的浮點型陣列
char ch[9]; //定義乙個長度為 9 的字元型陣列
需要注意的是:
1) 陣列中每個元素的資料型別必須相同,對於int a[4];
,每個元素都必須為 int。
2) 陣列長度 length 最好是整數或者常量表示式,例如 10、20*4 等,這樣在所有編譯器下都能執行通過;如果 length 中包含了變數,例如 n、4*m 等,在某些編譯器下就會報錯(c99之前不允許)。
3) 訪問陣列元素時,下標的取值範圍為 0 ≤ index < length,過大或過小都會越界,導致陣列溢位,發生不可**的情況。
4)陣列是乙個整體,它的記憶體是連續的;也就是說,陣列元素之間是相互挨著的,彼此之間沒有一點點縫隙。
1)定義陣列的同時賦值,例如:
int a[4] = ;
2) 可以只給部分元素賦值。當
中值的個數少於元素個數時,只給前面部分元素賦值。例如:
int a[10]=;
注:當賦值的元素少於陣列總體元素的時候,剩餘的元素自動初始化為 0:
我們可以通過下面的形式將陣列的所有元素初始化為 0:
int nums[10] = ;
char str[10] = ;
float scores[10] = ;
3) 只能給元素逐個賦值,不能給陣列整體賦值。例如給 10 個元素全部賦值為 1,只能寫作:
int a[10] = ;
4) 如給全部元素賦值,那麼在定義陣列時可以不給出陣列長度。例如:
int a = ;
二維陣列定義的一般形式是:
datatype arrayname[length1][length2];
二維陣列的初始化可以按行分段賦值,也可按行連續賦值。
例如,對於陣列 a[5][3],按行分段賦值應該寫作:
int a[5][3]=, , , , };
按行連續賦值應該寫作:
int a[5][3]=;
這兩種賦初值的結果是完全相同的。
對於二維陣列的初始化還要注意以下幾點:
1) 可以只對部分元素賦值,未賦值的元素自動取「零」值。例如:
int a[3][3] = , , };
是對每一行的第一列元素賦值,未賦值的元素的值為 0。賦值後各元素的值為:
1 0 0
2 0 0
3 0 0
再如:
int a[3][3] = , , };
賦值後各元素的值為:
0 1 0
0 0 2
3 0 0
2) 如果對全部元素賦值,那麼第一維的長度可以不給出。例如:
int a[3][3] = ;
可以寫為:
int a[3] = ;
3) 二維陣列可以看作是由一維陣列巢狀而成的;如果乙個陣列的每個元素又是乙個陣列,那麼它就是二維陣列。當然,前提是各個元素的型別必須相同。根據這樣的分析,乙個二維陣列也可以分解為多個一維陣列,c語言允許這種分解。
例如,二維陣列a[3][4]
可分解為三個一維陣列,它們的陣列名分別為 a[0]、a[1]、a[2]。
這三個一維陣列可以直接拿來使用。這三個一維陣列都有 4 個元素,比如,一維陣列 a[0] 的元素為 a[0][0]、a[0][1]、a[0][2]、a[0][3]。
1)c語言不允許把陣列作為乙個單元賦給另乙個陣列,除初始化外也不允許使用花括號列表的形式賦值。
2)可以使用帶的下標知名待初始化的元素:
int arr[6]=;//將arr[5]初始化為212
先寫這麼多
C 語言基礎學習總結 1
一 變數的基本資訊 資料 有用的資訊 具體的東西如 小蘋果 char 字元型別,單個文字 漢字 字母 數字 標點符號 單引號書寫 string 字串型別雙引號書寫 int 整數型直接書寫 double 小數型別,必須包含小數點直接書寫 變數 一塊儲存資料的記憶體空間,且該區域中的內容可以變化 使用變...
c語言 陣列學習總結(3)
函式 陣列和指標 指標操作 如果有 int a 5 則 a和 a 0 都表示陣列首元素a 0 的首位址。指向首元素 而 a則表示陣列的首位址。指向整個陣列 結合左值右值去理解 前提是 int a 10 1 a不能做左值 因為陣列在初始化之後就不能進行整體操作了 做右值表示首元素的首位址等同於 a 0...
C語言學習總結(七) 陣列
概念 同一型別的元素的集合體。注 這裡的型別不僅僅指c語言中的基本型別如int flaoat char 之類的,還包括很多構造型別,如指標,結構體,陣列等。對陣列的基本使用 陣列只能在定義時對其整體進行初始化,不能在其它地方整體進行賦值。c語言規定陣列的下標預設從0開始。定義陣列時陣列中括號裡面的值...