C語(yǔ)言 一維數(shù)組元素的初始化
變量在聲明時(shí)可進(jìn)行初始化,同樣,C語(yǔ)言允許在定義數(shù)組時(shí)為數(shù)組賦初值,稱之為數(shù)組的初始化。
1.一維數(shù)組初始化的形式
對(duì)一維數(shù)組進(jìn)行初始化的一般形式為:
類型標(biāo)識(shí)符 數(shù)組名[元素個(gè)數(shù)]={初值列表};
2.說明
(1)初值列表是一個(gè)用逗號(hào)分隔開的數(shù)組元素初值表,這些值都是常量的形式。
(2)初值表中常量的類型必須與類型說明符一致。
(3)初始化的順序?yàn)椋喊凑粘踔盗斜碇兄档捻樞蛞来未嫒霐?shù)組的各個(gè)元素中。例如:
int a[10]={2,6.5,3.1,7,8.9.4.0};
定義了一個(gè)含10個(gè)元素的整型數(shù)組,并在定義的同時(shí)為數(shù)組初始化,依次將初值列表中的數(shù)據(jù)存入數(shù)組元素中,這樣a[0]得到了2, a[1]得到了6, a[2]得到了5……a[9]得到了 0。
3.對(duì)一維數(shù)組初始化的方法
對(duì)一維數(shù)組進(jìn)行初始化一般由以下幾種方法:
(1)在定義數(shù)組時(shí),對(duì)數(shù)組中的全部元素賦初值。例如:
int a[5] = {0,l,2,3,4];
依次將0、1、2、3、4賦給數(shù)組元素a[0]、a[1]、a[2]、a[3]、a[4]。
(2)在定義數(shù)組時(shí),對(duì)部分?jǐn)?shù)組元素賦予初值。
int a[5] = {l,2};
數(shù)組有5個(gè)元素,但初值列表中只有2個(gè)值,這表示只給前面2個(gè)元素賦初值,a[0]得到1, a[1]得到 2,其他元素為0。
(3)對(duì)全部數(shù)組元素賦初值時(shí),可省略數(shù)組長(zhǎng)度,系統(tǒng)自動(dòng)確定。例如:
int a[]={0,l,2,3,4};
等價(jià)于:
int a[5] = {0,1.2,3.4};
之所以可以省略數(shù)組長(zhǎng)度,是因?yàn)樵趯?duì)數(shù)組初始化時(shí),系統(tǒng)可以通過初始化列表中數(shù)據(jù)的個(gè)數(shù)來(lái)確定數(shù)組的長(zhǎng)度。通常情況下,未初始化的數(shù)組只是在內(nèi)存中分配了指定大小的存儲(chǔ)空間,但每個(gè)存儲(chǔ)空間中的初值是不可知的。例如:
main()
{
int a [5] ; int i;
for (i-0:i<5;i++)
printf (" %d",a [i]);
}
程序執(zhí)行,輸出結(jié)果為:
-858993460 -858993460 -858993460 -858993460 -858993460
可以看出,未初始化的數(shù)組,初值是沒有意義的值。
如果想把一個(gè)數(shù)組中全部元素賦值為0,應(yīng)該寫成:
int a[5]={0,0,0,0,0};
或者也可以寫成:
int a[5]={0};
這是因?yàn)槌跏蓟瘯r(shí),如果指定的初值元素個(gè)數(shù)比數(shù)組元素要少,剩下的全部被賦值為0。
點(diǎn)擊加載更多評(píng)論>>