C语言 一维数组元素的初始化
变量在声明时可进行初始化,同样,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。
点击加载更多评论>>