二维数组
定义与初始化
一、定义二维数组
使用连续的两个[ ],type name[n1][n2],其中n1,n2可以是常量也可以是变量。但如果是变量,在定义数组前一定已经赋值过。如:
int a[3][4];
相当于3行4列的二维表,共12个元素。
而如果 i , j 有被赋值过,下面的也可以:
int a[i][j];
二维数组一般与嵌套的两层循环结合使用,外层循环变化行标,内层循环变化列标。
二维数组是怎么存放的呢?盗老师课件的图
二、初始化
1.所有元素初始化:
int a[2][3]={
1,2,3,4,5,6};//第0行为1,2,3;第1行为4,5,6
int a[2][3]={
{
1,2,3},{
4,5,6}};//第0行为1,2,3;第1行为4,5,6
2.部分元素初始化
优先为行号小的元素赋值,因为二维数组是这样存放的(盗老师课件的图
ps:初值个数少于数组元素个数时系统将自动补0;
初值个数多于数组元素个数时则发生错误。
举个栗子:
int a[3][3]={
{
0,1},{
2}};
/*第0行为0,1,0;第1行为2,0,0;第2行为0,0,0*/
3.全部元素赋值的省略定义法
当为所有元素赋值时,初始化时数组的行数可以省略不写,其个数由后面初始化的元素个数与数组的列数确定。
注意:只能行数省略,列数不可省略。
e.g.
int [][3]={
{
1,2,3},{
4,5,6}};✔
int [2][]={
{
1,2,3},{
4,5,6}};✖
4.字符二维数组的初始化的特殊方式(利用字符串常量初始化
char name