欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-04 17:44:00
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。 数组初始化赋值是指在数组定义时给数组元素赋初值。数组初始化是编译阶段进行的。这样将减少运行时间,提高效率。 注:之前用到的赋值语句或输入语句给数组赋值是在运行时完成的。 一般形式为:类型说明符 数组名[常量表达 ......

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

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

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

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

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

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