一、知识点总结:
1、二维数组的定义和引用:
1)定义:定义形式为:
类型名 数组名 [行长度][列长度];
例如:
int a[3][2];
/*定义一个二维数组a,3行2列,共六个元素。*/
2)引用:引用二维数组的元素要指定两个下标,即行下标和列下标,形式为:
数组名[行下标][列下标];
行下标的合理取值范围是[0,行长度-1],列下标的合理取值范围是[0,列长度-1]。
2、二维数组的初始化:
1)分行赋初值:
一般形式为:
类型名 数组名 [行长度][列长度]={{初值表0},...,{初值表k},...};
把初值表k中的数据依次给第k行的元素。例如:
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
二维数组的初始化也可以只针对部分元素,例如:
static int b[4][3]={{1,2,3},{},{4,5}};
只对b数组第0行的全部元素和第二行的前两个元素赋初值,其余元素的初值都是0。
2)顺序赋初值:
一般形式为:类型名 数组名[行长度][列长度]={初值表};
根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素。例如:
int a[3][3]={1,2,3,4,5,6,7,8,9};
/*等价于*/
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
如果只对部分元素赋初值,要注意初值表中数据的书写顺序。例如:
static int b[4][3]={1,2,3,0,0,0,4,5}
/*等价于*/
static int b[4][3]={{1,2,3},{},{4,5}};
二维数组初始化时,如果对全部元素都赋了初值,或分行赋初值时,在初值表中列出了全部行,就可以省略行长度,例如:
int a[][3]]={1,2,3,4,5,6,7,8,9};
/*等价于*/
int a [3][3]={1,2,3,4,5,6,7,8,9};
3)字符串存储:
一般形式为:
static char s[6]={'h','a','p','p','y','