4.1 一維數(shù)組
1.數(shù)組的基本概念
數(shù)組是一組同類對象集合的一種表示。在C語言中,數(shù)組類型是這樣一種數(shù)據(jù)結構:數(shù)組所有元素的數(shù)據(jù)類型相同,元素個數(shù)固定,其元素按順序存放,每個元素對應一個序號(稱為下標),數(shù)組元素的下標從0開始順序編號,各元素按下標存取(引用)。數(shù)組元素變量能與相同類型的獨立的變量一樣使用。引用數(shù)組元素變量所需的下標個數(shù)由數(shù)組的維數(shù)決定,數(shù)組有一維數(shù)組、二維數(shù)組或多維數(shù)組之分。
2.一線數(shù)組的定義
一維數(shù)組的定義形式為:
類型說明符數(shù)組名[常量表達式」;
例如:
int a[5] ;
定義一個名為a的數(shù)組,它有五個元素,每個元素都是整型。數(shù)組定義包含以下幾個要點:
(1)類型說明符用來指明數(shù)組元素的類型,同一數(shù)組的諸元素,它們的類型是相同的。
(2)數(shù)組是一個變量,與一般變量一樣,用標識符命名,數(shù)組名遵守標識符的命名規(guī)則。
(3)方括號“[]”是數(shù)組的標志,方括號中的常量表達式的值表示數(shù)組的元素個數(shù),即數(shù)組的長度。例如,int a[5]中的 5表示數(shù)組 a有5個元素,下標從0開始,這五個元素分別是:a[0]、a[1]、a[2]、a[3]和a[4]。
(4)常量表達式通常是整型常量、符號常量或sizeof(類型名),以及由它們組成的常量表達式。定義數(shù)組大小用常量表達式,就是說數(shù)組的大小是固定的,不可以包含引用變量值的表達式來定義數(shù)組的大小。
(5)C語言有一個約定,當數(shù)組名單獨出現(xiàn)在表達式中時,數(shù)組名可以代表為它分配的內存區(qū)域的開始地址,即數(shù)組中下標為0的元素的地址。在這種情況下,數(shù)組名起著一個常量的作用,即a與&a[0]作用一樣。如代碼scanf(“%d”,&a[0])與 scanf(“%d”,a)都是為數(shù)組a的第一個元素輸入值。
3.一維數(shù)組的初始化
可在數(shù)組定義同時,給出數(shù)組元素的初值。這種表述形式稱為數(shù)組初始化。數(shù)組初始化可用以下幾種方法實現(xiàn):
(1)數(shù)組定義時,順序列出數(shù)組全部元素的初值。例如:
int d[5]={0,l,2,3,4};
將數(shù)組元素的初值依次寫在一對花括弧內。經(jīng)上面定義和初始化之后,就有d[0]=0.d[l]=l、d[2]=2、d[3]=3、d[4]=4。
(2)只給數(shù)組的前面一部分元素設定初值。例如:
int e[5]={0,l, 2};
定義數(shù)組e有5個整型元素,其中前三個元素設定了初值,而后兩個元素末明確地設定初值。系統(tǒng)約定,當一個數(shù)組的部分元素被設定初值后,對于元素為數(shù)值型的數(shù)組,那些末明確設定初值的元素自動被設定0值。所以數(shù)組e的后兩個元素的初值為0。但是,當定義數(shù)組時,如未對它的元素指定過初值,對于內部的局部數(shù)組,則它的元素的值是不確定的。
(3)當對數(shù)組的全部元素都明確設定初值時,可以不指定數(shù)組元素的個數(shù)。例如:
int g[]={5,6,7,8,9};
系統(tǒng)根據(jù)初始化的花括號內的初值個數(shù)確定數(shù)組的元素個數(shù),所以數(shù)組g有五個元素。但若提供的初值個數(shù)小于數(shù)組希望的元素個數(shù)時,則方括號中的數(shù)組元素個數(shù)不能省略。如代碼int b[10]={1,2,3,4,5}定義數(shù)組 b有10個元素,前五個元素如設定所示,后五個元素都為0。反之,如提供的初值個數(shù)超過了數(shù)組元素個數(shù),就是一個錯誤。
4.一維數(shù)組元素的引用
程序定義了數(shù)組后,就可引用數(shù)組的元素。引用數(shù)組元素的一般形式為:
數(shù)組名[下標]
其中下標可以是整型常量、整型變量或整型表達式。例如,數(shù)組a的五個元素可分別用a[0]、a[l]、a[2]、a[3]、a[4]來引用它們。
設有定義:
int x[20], i;
以下代碼實現(xiàn)順序輸入數(shù)組X的全部元素:
for(i=0;i<20;i++)
scanf(“%d”,&x[i]);
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |