二维数组的初始化
注:int a[3][4]若是全局变量(在main函数之外),会全设为0。若局部变量,随机数值。
方式一:初始化时指定每行的值
int a[3][4] = { //等效于 int a[][4]
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
注:最外围括号内部的每个括号相当于初始化一行,括号中可以省略某些元素的初始化。
方式二:初始化时从头开始,依次序进行
int a[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
int a[3][4] = {0}; //所有元素都初始化为0
注:后面多个元素可以不指定,不指定全部初始化为0
二维数组的赋值
1,2,3,4,5,6,7......
方式一:
int i=0, j=0;
int a[3][4];
for(i=0; i<12; i++){
a[i/4][i%4] = i+1;
}
方式二:
for(i=0; i<3; i++){
for(j=0; j<4; j++){
a[i][j] = i*4+j+1;
}
}
数组的存储方式
一维数组是按顺序存储的,二维数组同样也是!
二维数组作为函数的参数
数组作为函数的参数传递,不是单纯的值传递,传递的是数组本身。
版本一:void print1(int a[3][4]){
}
版本二:void print2(int a[][4], int lines){
}