數組是程序中最常用的結構數據類型,數組可以用相同名字引用一係列變量,並用下標來識別它們。在許多場合,使用數組可以縮短並簡化程序。數組的每個元素和下標相關聯,可根據下標指示數組的元素。數組有上界和下界,數組元素在上下界內是連續存放的。由於C語言對每個數組元素都會分配相應的存儲空間,所以不要不切實際地聲明一個太大的數組。
具有一個下標的數組稱為一維數組。在C語言中,使用數組必須先進行類型說明,即數組也要遵循“先定義,後使用”的原則。定義一維數組的語法格式為:
數據類型數組名[常量表達式];
其中,“數據類型”可以是任意一種基本數據類型,也可以是已經聲明過的某種構造數據類型(這部分內容將在以後的章節中涉及);“數組名”是用戶自定義的標識符,用來表示數組的名稱;“常量表達式”的值必須是整型數據,用於表示數組的長度,即數組所包含元素的個數;“[]”是下標運算符,具有最高的運算優先級,結合方向為從左向右。
例如,下麵定義了三個不同類型的數組:
intscore[10];
/*定義了一個整型數組score,用來存放10個學生的成績*/
floatheight[20];
/*定義了一個單精度數組height,用來存放20個人的身高*/
doubleincome[5];
/*定義了一個雙精度數組income,用來存放5個人的收入*/
對於數組類型,有以下幾點說明:
(1)在編譯階段,計算機根據數組的類型說明來確定其存儲空間的大小,即一維數組占用字節數=數組長度×sizeof(數據類型)。如上麵定義的score數組占用的字節數為10×2。
(2)數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。如score數組中每個元素都是int型的。
(3)數組名的書寫規則應符合標識符的書寫規定。
(4)數組名不能與其他變量名相同。
(5)方括號中常量表達式表示數組元素的個數,其下標從0開始計算。如num[5]表示數組num有五個元素,分別為num[0]、num[1]、num[2]、num[3]和num[4]。
(6)不能在方括號中用變量來表示元素的個數,但可以是符號常量或常量表達式。例如:
#include
#defineSIZE5
voidmain()
{intsum[3+2],sub[SIZE];
……
}
是合法的。但是下述說明方式是錯誤的:
#include
voidmain()
{intn=5;
intadd[n];