1 / 29
文档名称:

C语言程序设计第章PPT课件.pptx

格式:pptx   大小:352KB   页数:29页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计第章PPT课件.pptx

上传人:wz_198613 2021/6/29 文件大小:352 KB

下载得到文件列表

C语言程序设计第章PPT课件.pptx

相关文档

文档介绍

文档介绍:朱立华 俞琼 王立柱
1
第1页/共29页
朱立华 俞琼 王立柱
2
内容提要
与二维数组相关的各类指针

本章介绍二维数组的有关知识
动态二维数组空间的申请与释放(选讲)
内容提要
第2页/共29页
朱立华 俞琼 王立柱
3
重点难点提示
重点难点提示
第3页/共29页
朱立华 俞琼 王立柱
4
二维数组的定义
哪里需要二维数组?
类型相同的一组数,如果在序列中只受一种序号标明其在整个序列中的顺序,用一维数组,例如:1门课各个同学的成绩
类型相同的一组数,如果在序列中需要用两种序号标明其在整个序列中的顺序,则要用二维数组,例如:3门课各个同学的成绩
矩阵问题强调元素所在的行、列位置,必须用二维数组
二维数组的定义形式:
类型标识符 数组名[整型常量表达式1] [整型常量表达式2];
例:int a[4][3];//定义4行3列的整型二维数组,数组名为a
二维数组的元素类型
二维数组名是一个用户自定义标识符
指明二维数组的行数
指明二维数组的列数
第4页/共29页
朱立华 俞琼 王立柱
5
二维数组的定义
二维数组的实质分析:
二维数组是一维数组的一维数组(递归定义)
例:int a[4][3];
(1)这里,a是二维数组名,也可以理解成是一维数组名a,它有4个元素,分别为a[0]、a[1]、a[2]、a[3]
(2)a的4个元素不是普通的变量,而是都分别是一维数组,称为行一维数组,每一个都有3个int型元素,例:a[0]的3个元素为:a[0][0]、a[0][1]、a[0][2]
(3)因此,二维数组a中共有12(4*3)个int型的元素:
a[0][0]、a[0][1]、a[0][2]
a[1][0]、a[1][1]、a[1][2]
a[2][0]、a[2][1]、a[2][2]
a[3][0]、a[3][1]、a[3][2]
它们4个称为行一维数组
第1个下标称为行下标
第2个下标称为列下标
这12个元素称为二维数组元素
行数
列数
第5页/共29页
朱立华 俞琼 王立柱
6
二维数组的定义
二维数组定义中含有3种类型:
例:int a[4][3];
(1)int [4][3]:是二维数组a的类型标识
(2)int [3]: 是行一维数组a[0]~a[3]的类型标识,也是二维数组的基类型
(3)int:是二维数组元素a[0][0]~a[3][2]的类型,也是行一维数组的基类型
二维数组定义中的常量与变量:
例:int a[4][3];
(1)二维数组a和行一维数组a[0]~a[3]均为指针常量
(2)二维数组元素a[0][0]~a[3][2]是int型的变量
第6页/共29页
朱立华 俞琼 王立柱
7
二维数组的初始化
二维数组在定义的同时可为其元素赋值,称为初始化,原则:行从左到右依次,每行中列从左到右依次
(1)逐行初始化:
int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
(2)行数可以缺省,列数不能省,自动算行 :
int a[ ][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
(3)不分行,用类似一维数组的方式初始化:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
(4)初始化数据不足,系统用0补充:
int a[4][3]={{1,2},{4,5},{7,8,9},{10,11,12}};
(5)最简单的初始化:
int a[4][3]={0};
每行单独用一对大括号括起
共有两层大括号
只有一层大括号
等效于int a[4][3]={{1,2,0},{4,5,0},{7,8,9},{10,11,12}};
第1个元素初始化为0,其余未初始化的元素值自动为0
行数计算出来为4,不初始化时不能缺少行数
第7页/共29页
朱立华 俞琼 王立柱
8
二维数组的初始化
错误的初始化示例:
(1)未遵守行从左至右依次初始化原则:
int a[4][3]={ ,{4,5,6},{7,8,9},{10,11,12}};
(2)同一行中未遵守列从左至右依次初始化原则:
int a[4][3]={{1, ,3},{4,5,6},{7,8,9},{10,11,12}};
int a[4][3]={{1,2,3},