1.1初始化数组
int array [1] = {1,0};
int array[] = {1,0};
//最好不要用空格分隔数组中的元素
//如果用空格就这样:static int array[] = {1 0};
推荐使用宏常量定义数组长度
#define number xx
int array[number] = {……};
设置只读数组,应该使用const声明和初始化数组
const int arrary[number] = {……};
部分初始化时,当初始化列表的值少于数组元素个数时,编译器会把剩下的元素赋值为0
#define size 4
int array[size] = {1,4};
这时如果打印数组元素会是这样的:
1
4
0
0
当初始化列表的值大于数组元素个数时,编译器会报错
因此,最好的写法是省略方括号中的数字
int array[] = {……};
这样编译器会自动匹配数组大小和初始化列表中的项数
1.2指定初始化器
c99规定可以在初始化列表中使用带方括号的下标指定带初始化元素
int array[6] = {[5]=212};//把array[5]初始化为212
int days[12] = {31,28,[4]=31,30,31,[1]=29};
//如果指定初始化器后有更多的值,则后面的这些值被用于初始化指定元素后面的元素
//days[4]=31,days[5]=30,days[6]=31;
//若再次初始化指定的元素,那么最后面的初始化会取代前面的初始化
//最后days[1] = 29;
如果未指定数组有多少元素,那么编译器会把数组的大小设置为足够装得下初始化的值
int staff[] = {1,[6]=23};
int stuff[] = {1,[6]=3,5,6};
这里,staff有七个元素,stuff有9个元素
1.3给数组元素赋值
利用循环给数组赋值
1.4数组边界
在使用数组时,要确保数组下标不会超出边界
但是c相信程序员的原则使编译器不检查边界,所以程序员要自己人工检查或添加额外代码检查数组的每个下标
1.5指定数组的大小
1.6多维数组
int array[5][12] = {……};//一个五行十二列的二维数组
1.7初始化二维数组
两个嵌套循环
1.8其他多维数组
多个嵌套循环
m