一維數組初始化(初學者)


給數組賦值的方法除了用賦值語句對數組元素逐個賦值外,還可采用初始化賦值和動態賦值的方法。

數組初始化賦值是指在數組定義時給數組元素賦初值。數組初始化是編譯階段進行的。這樣將減少運行時間,提高效率。

注:之前用到的賦值語句或輸入語句給數組賦值是在運行時完成的。

一般形式為:類型說明符 數組名[常量表達式]={值、值……值}

例:int a[8]={0,1,2,3,4,5,6,7};

(1)所賦初值放在等號后的一對花括號中,數值類型必須與所說明的類型的一致,所賦初值之間用逗號隔開,系統將按這些數值的排列順序,從a[0]元素開始依次給a數組中的元素賦值。以上語句將給a[0]賦初值0,給a[1]賦初值1……,給a[7]賦初值7。在指定初值中,第一個初值必定賦給下標為0的元素,因此,不可能跳過前面的元素給后面的元素賦初值。

(2)當所賦初值少於所定義數組的元素個數時,將自動給后面的元素補以初值0。

例:給a數組中所有元素賦初值0

int a[10]={0};

(3)對於字符型數組也同樣補以初值0,即'\0'。

例:char c[5]={'@'};

相當於:

char c[5]={'@','\0','\0','\0','\0'};

(4)當所賦初值多於所定義數組的元素個數時,在編譯時將給出出錯信息。

(5)在對全部數組元素賦初值時,由於數據的個數已經確定,因此可以不指定數組長度。

例:int a[5]={1,2,3,4,5};也可改為 int a[]={1,2,3,4,5};

在第二種寫法中,花括弧中有五個數,系統就會據此自動定義a數組的長度為5。但若數組長度與提供初值的個數不相同,則數組長度不能省略。

數組初始化與未初始化比較:

#include<stdio.h>

void main()
{
    int i,a[5]={3,4,5},b[5];
    printf("\n array a is:");
    for(i=0;i<5;i++)
    {
        printf("%d",a[i]);
    }
    printf("\n array b is:");
    for(i=0;i<5;i++)
    {
        printf("%d",b[i]);
    }
}

動態賦值的方法:(程序演示,文字就不打了)

#include<stdio.h>

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);
}

注:與數組大小的動態定義進行區分,數組大小不允許動態定義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM