一维数组初始化(初学者)

给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。

数组初始化赋值是指在数组定义时给数组元素赋初值。数组初始化是编译阶段进行的。这样将减少运行时间,提高效率。

注:之前用到的赋值语句或输入语句给数组赋值是在运行时完成的。

一般形式为:类型说明符 数组名[常量表达式]={值、值……值}

例: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,即''。

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

相当于:

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

(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("
 array a is:");
    for(i=0;i<5;i++)
    {
        printf("%d",a[i]);
    }
    printf("
 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;
");
    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
",max);
}

注:与数组大小的动态定义进行区分,数组大小不允许动态定义。

原文地址:https://www.cnblogs.com/lvfengkun/p/10296623.html