- 1
- 0
- 约1.78万字
- 约 76页
- 2018-11-11 发布于广西
- 举报
本章要求 掌握一维数组、二维数组的定义、初始化和引用。(重点) 掌握字符串和字符数组的概念及其处理函数。 (重点) 掌握用数组进行编程的技术。(难点) 二维数组的理解 每个元素a[i]由包含4个元素组成 的一维数组组成 二维数组a是由3个元素组成 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[0] a[1] a[2] 行名 例 int a[3][4]; a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[0][0] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[1][2] 0 1 4 5 2 3 6 7 10 11 8 9 a[0] a[1] a[2] 在内存中的存放: 二维数组除了维数比一维数组多一维外, 其它性质与一维数组全部类似。 看看下面写法是否正确? ① int a[0][3]; 用于定义数组长度的常量表达式的值必须是大于0的正整数。 ② int i=3 , j=4 ; int a[i][j] ; 定义数组元素的个数必须使用常量表达式,而不能使用变量。 注意: 注意: 注意: 二、二维数组的初始化 这里主要介绍定义时初始化,其它初始化方法和一维数组类似。定义时初始化有两种方法: ⑴分行初始化 例如:int a[2][3]={{1 , 2 , 3 } , { 4 , 5 , 6 }}; ⑵按元素排列顺序初始化 即按数组元素在内存中排列的顺序赋初值。省略掉内层的花括号。 例如:int a[2][3]={1 , 2 , 3 , 4 , 5 , 6 }; ⑵在对二维数组初始化时,如果对全部元素都赋初值(),或分行赋初值(每行至少一个数据),则可以省略第一维数组长度。但是,第二维数组长度不允许省略。 ⑴ 在对二维数组初始化时,也可以只对部分数组元素初始化,未被初始化的数组元素将自动赋0。 int a[2][3]={{5,6},{7,8}}; int a[2][3]={5,6,7,8}; 如: 得到的数组为: 5 6 0 7 8 0 得到的数组为: 5 6 7 8 0 0 如: int a[][3]={1,2,3,4,5,6,7,8,9}; int a[][3]={1,2,3,4,5,6,7}; 则末尾两元素为0 int a[][4]={{1,2},{3,4,5,6},{7}}; 系统按3行处理 int a[][10]={1,0}; float f[2][]={1.1,2.2}; 注意: 注意: 注意: 三、二维数组的引用 与引用一维数组元素一样,是用下标法引用二维数组元素的。 表示形式: 数组名[行下标][列下标] 其中,行下标和列下标是整型常量、整型变量或整型表达式。其编号是从0开始的。 例如:若有 int a[2*5][3*4], i=15; 则使用 a[3*3][0], a[1][i-5]都是合法的。 说明:数组名a代表的是数组a在内存中的首地址,因此,可以用数组名a来代表数组元 素a[0][0]的地址。 例 int a[2][3]={{1,2,3},{4,5,6}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 例 int a[2][3]={{1,2},{4}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 0 4 0 0 部分初始化 例 int a[][3]={{1},{4,5}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 0 0 4 5 0 第一维长度省略初始化 例 int a[2][3]={1,2,3,4,5,6}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化
原创力文档

文档评论(0)