位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 一维数组元素的初始化

提问人:刘团圆发布时间:2020-11-30

变量在声明时可进行初始化,同样,C语言允许在定义数组时为数组赋初值,称之为数组的初始化。

1.一维数组初始化的形式

对一维数组进行初始化的一般形式为:

类型标识符 数组名[元素个数]={初值列表};

2.说明

(1)初值列表是一个用逗号分隔开的数组元素初值表,这些值都是常量的形式。

(2)初值表中常量的类型必须与类型说明符一致。

(3)初始化的顺序为:按照初值列表中值的顺序依次存入数组的各个元素中。例如:

    int a[10]={2,6.5,3.1,7,8.9.4.0};

    定义了一个含10个元素的整型数组,并在定义的同时为数组初始化,依次将初值列表中的数据存入数组元素中,这样a[0]得到了2, a[1]得到了6, a[2]得到了5……a[9]得到了 0。

3.对一维数组初始化的方法

对一维数组进行初始化一般由以下几种方法:

(1)在定义数组时,对数组中的全部元素赋初值。例如:

    int a[5] = {0,l,2,3,4];

依次将0、1、2、3、4赋给数组元素a[0]、a[1]、a[2]、a[3]、a[4]。

(2)在定义数组时,对部分数组元素赋予初值。

    int a[5] = {l,2};

数组有5个元素,但初值列表中只有2个值,这表示只给前面2个元素赋初值,a[0]得到1, a[1]得到 2,其他元素为0。

(3)对全部数组元素赋初值时,可省略数组长度,系统自动确定。例如:

    int a[]={0,l,2,3,4};

等价于:

    int a[5] = {0,1.2,3.4};

    之所以可以省略数组长度,是因为在对数组初始化时,系统可以通过初始化列表中数据的个数来确定数组的长度。通常情况下,未初始化的数组只是在内存中分配了指定大小的存储空间,但每个存储空间中的初值是不可知的。例如:

main()

{

    int a [5] ; int i; 

    for (i-0:i<5;i++)

        printf (" %d",a [i]);

}

程序执行,输出结果为:

-858993460  -858993460  -858993460  -858993460  -858993460

可以看出,未初始化的数组,初值是没有意义的值。

如果想把一个数组中全部元素赋值为0,应该写成: 

    int a[5]={0,0,0,0,0};

或者也可以写成: 

    int a[5]={0};

这是因为初始化时,如果指定的初值元素个数比数组元素要少,剩下的全部被赋值为0。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部