初始化賦值的一般形式為: static 類型說(shuō)明符 數(shù)組名[常量表達(dá)式]={值,值……值}; 其中static表示是靜態(tài)存儲(chǔ)類型, C語(yǔ)言規(guī)定只有靜態(tài)存儲(chǔ)數(shù)組和外部存儲(chǔ)數(shù)組才可作初始化賦值(有關(guān)靜態(tài)存儲(chǔ),外部存儲(chǔ)的概念在第五章中介紹)。在{ }中的各數(shù)據(jù)值即為各元素的初值, 各值之間用逗號(hào)間隔。例如: static int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相當(dāng)于a[0]=0;a[1]=1…a[9]=9;
C語(yǔ)言對(duì)數(shù)組的初始賦值還有以下幾點(diǎn)規(guī)定:
1.可以只給部分元素賦初值。當(dāng){ }中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。例如: static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個(gè)元素賦值,而后5個(gè)元素自動(dòng)賦0值。
2.只能給元素逐個(gè)賦值,不能給數(shù)組整體賦值。 例如給十個(gè)元素全部賦1值,只能寫(xiě)為:
static int a[10]={1,1,1,1,1,1,1,1,1,1};
而不能寫(xiě)為:
static int a[10]=1;
3.如不給可初始化的數(shù)組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數(shù)組說(shuō)明中, 可以不給出數(shù)組元素的個(gè)數(shù)。例如:
static int a[5]={1,2,3,4,5};
可寫(xiě)為:
static int a[]={1,2,3,4,5};
動(dòng)態(tài)賦值可以在程序執(zhí)行過(guò)程中,對(duì)數(shù)組作動(dòng)態(tài)賦值。 這時(shí)可用循環(huán)語(yǔ)句配合scanf函數(shù)逐個(gè)對(duì)數(shù)組元素賦值。
void main()
{
int i,max,a[10];
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max) max=a[i];
printf("maxmum=%d\n",max);
}
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max) max=a[i];
printf("maxmum=%d\n",max);
本例程序中第一個(gè)for語(yǔ)句逐個(gè)輸入10個(gè)數(shù)到數(shù)組a中。 然后把a(bǔ)[0]送入max中。在第二個(gè)for語(yǔ)句中,從a[1]到a[9]逐個(gè)與max中的內(nèi)容比較,若比max的值大,則把該下標(biāo)變量送入max中,因此max總是在已比較過(guò)的下標(biāo)變量中為最大者。比較結(jié)束,輸出max的值。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |