一:一维数组初始化
1、a[5] = {0}; // 可以看做第一个元素初始化为0,其余元素没有初始化,默认为0,最后所有元素为0
2、a[5] = {1, 2, 3}; //a[0]=1,a[1]=2,a[2]=3,其余为0
3、a[5] = {1, 2, 3,}; //这里单独拿出来,后面有逗号是可以的,其余同2
4、a[5] = {1,2, ,3}; //这里是不可以的,数组初始化只能顺序初始化,不能跳过
5、b=3; a[b] = {1,2,3}; //这里是不可以的,数组元素个数必须是常数,不能是变量
二:二维数组初始化
二维数组可以看做一维数组的数组
要牢记第一个元素代表行,第二个元素代表列,默认先行后列初始化的
1、a[2][3] = {{1},{1}};//这是一个两行三列的数组,可以看做两个有三个元素的一维数组,分解成两个一位数组初始化,参照一维数组初始化
2、a[2][3] = {1, 1}; //按照先行后列初始化,a[0][0] = 1, a[0][1] = 1,其余为0
3、a[][3] = {1, 1, 1, 1, 1}; //先行后列初始化,每行有三列,第一行排完之后排第二行,容易得知有两行
4、a[2][] = {1, 1, 1, 1, 1,}; //有两行,第一行如果有四个元素,第二行就有一个。第一行如果有三个元素,第二行就有两个。这时编译器就不知怎么搞了,所以不行。
5、a[500][500],可用双层for嵌套初始化,例如
for(i=0; i<500; i++)
for(j=0; j<500; j++)
a[i][j] = 1;