一、知识点总结:
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','\0'};
字符数组初始化,用字符串变量
static char s[6]={"happy"};
static char s[6]="happy";
/*数组长度>=字符串的有效长度+1*/
字符串的有效长度:有效字符的个数。
字符串由有效字符和字符串结束符'\0'组成。
采用赋值的方法将字符串"a"存入数组s。它等价于:
static char s[80]="a";
区分"a"和'a':前者是字符串常量,包括'a'和'\0'两个字符,用一维数组存放;后者是字符常量,只有一个字符,可以赋予给字符变量。
3、矩阵的术语与二类数组下标的对应关系:
术语 | 含义 | 下标规律 |
主对角线 | 从矩阵的左上角至右下角的连线 | i==j |
上三角 | 主对角线以上的部分 | i<=j |
下三角 | 主对角线一下的部分 | i>=j |
副对角线 | 从矩阵右上角至左下角的连线。 | i+j==N-1 |
二、实验过程中遇到的问题及解决方法:
此次试验主要是对上课知识的巩固,练习,难度不是很大,但是应注意一些零碎的知识点,注意下标不要越界。
三、实验心得体会:
此次试验运用到了二维数组的知识点,学会了应用二维数组算日期等,内容并不难,但要理解内容,做到运用娴熟。