初始化列表中的项数应与数组大小一致
//some_date.c--部分初始化数组
#include <stdio.h>
#define SIZE 4
int main(void)
{
int some_date[SIZE] = { 1492,1066 };
int i;
printf("%2s%14s\n", "i", "some_date[i]");
for (i = 0; i < SIZE; i++)
printf("%2d%14d\n", i, some_date[i]);
return 0;
}
输出如下
如上图所示,当初始化里表中的中少于数组元素个数时,编译器会把神域的元素都初始化为0.
#include <stdio,h>
int main(void)
{
const int days[] = { 31,28,31,30,31,30,31,31,30,31 };
int index;
for (index = 0; index < sizeof days / sizeof days[0]; index++)
printf("month %2d has %d days.\n", index + 1, days[index]);
return 0;
}
如果初始化数组是沈略方括号中的数字,编译器会根据初始化列表中的项数来确定数组的大小。
指定初始化器(C99)
z指定初始化器,利用该特性可以初始化指定的数组元素。列入,只初始化数组中的最后一个元素。
传统语法 int arr[6]={0,0,0,0,0,212}
新方法: int arr[6]={[5]=212}
给组元素赋值
声明数组后可以借助数组小标(或索引)给数组元素赋值,例如下面元素的赋值
C不允许把数组作为一个单元赋给另一个数组,除初始化以外也不允许使用花括号的形式赋值,
数组边界:在使用数组时要防止数组下标超出边界。也就是说必须确保下标是有效值,
数组元素的编号cong0开始,最好是在声明数组时使用符号常量来表示数组的大小。