一维数组是线性结构,用一个索引访问成员。下面的代码声明了一个5个元素的整数数组:
int vector[5];
数组索引从0开始,到声明的长度减1结束。vector
数组的索引从0开始,到4结束。不过,C并没有强制规定边界,用无效的索引访问数组会造成不可预期的行为。图4-1说明了数组的内存如何分配,每个元素4字节长,且没有初始化。就像1.2.1节中所解释的,取决于不同的内存模型,数组的长度可能会不同。
数组的内部表示不包含其元素数量的信息,数组名字只是引用了一块内存。对数组做sizeof
操作会得到为该数组分配的字节数,要知道元素的数量,只需将数组长度除以元素长度,如下所示,打印结果是5:
printf("%d\n", sizeof(vector)/sizeof(int));
可以用一个块语句初始化一维数组,下面的代码把数组中的元素初始化为从1开始的整数:
int vector[5] = {1, 2, 3, 4, 5};