- 1、本文档共86页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计第五章数组
教学目标:
本讲介绍C语言中数组的定义和使用,其中重点介绍一维数组的定义、引用、初始化,此外对二维数组的定义、引用和初始化在文中也作了详细的说明。要求大家熟练掌握一维数组的使用,了解的二维数组的应用,灵活运用数组编程。
本讲重点 :
1.一维数组的定义、初始化及应用;
2.数组元素的引用方法:下标法、数组名法。
3.字符串的使用和字符串函数的应用。
本讲难点:
1.利用指针实现对数组的操作;
2.二维数组的应用。
教学方法:理论教学与实践教学相结合。
?
;5.1 一维数组及指针
5.2 一 维字符数组及指针
5.3 多维数组及指针
5.4 指针数组
5.5 二级指针
5.6 程序设计举例 ;5.1 一维数组及指针;5.1.1. 一维数组的定义和初始化
?
1.一维数组的定义
?
一维数组定义的一般形式为:
类型标识符 数组名[常量表达式]
其中,类型标识符表示数组的数据类型,即数组元素的数据类型,可以是任意数据类型,如整型、实型、字符型等。常量表达式可以是任意类型,一般为算术表达式,其值表示数组元素的个数,即数组长度。数组名要遵循标识符的取名规则。
如:int a[10];
定义了一个一维数组,数组名为a,数据类型为整型,数组中有10个元素,分别是:a[0],a[1],a[2],a[3],a[4], a[5],a[6],a[7],a[8],a[9]。 ;说明:
① 不允许对数组的大小作动态定义。如下面对数组的定义是错误的。 int n=10;
int a[n];
② 数组元素的下标从0开始。如数组a中的数组元素是从a[0]到a[9]。
③ C语言对数组元素的下标不作越界检查。如:数组a中虽然不存在数组元素a[10],但在程序中使用并不作错误处理,所以在使用数组元素时要特别小心。
④ 数组在内存分配到的存储空间是连续的,数组元素按其下标递增的顺序依次占用相应字节的内存单元。数组所占字节数为:sizeof(类型标识符)*数组长度。如数组a占用连续20个字节存储空间,为其分配的内存见图5.1。 ;图5.1;如:下面对数组a的初始化是等价的:
int a[10]={0,1,2,3,4,5,6,7,8,9};
int a[ ]={0,1,2,3,4,5,6,7,8,9};
a[0]到a[9]的值分别为:0,1,2,3,4,5,6,7,8,9。
Turbo C中,若数组的存储类型为static,且没有初始化,编译系统自动对数组初始化,将数值型数组的全部元素都初始化为0,将字符型数组的全部元素都初始化为空(’\0’)。如:
static int a[10];/*数组元素a[0]到a[9]的值都为0。*/
② 部分元素初始化。
部分元素初始化时,数组的长度不能省略,并且是赋值给前面的元素,没有被赋值的数组元素,数值型数组时值为0,字符型数组时值为’\0’。如:
int a[10]={1,2};/*a[0]的值为1,a[1]的值为2,a[2]到a[9]的值都为0*/
;;a[3.4] /*下标为实型数据,系统自动取整,表示a[3]*/
a[’b’-’a’] /*下标为表达式,表达式’b’-’a’的值为1,表示 a[1]*/
a[4]+=10 /*与a[4]= a[4]+10等价,表示将a[4]的原值加10*/
a[4]++ /*与a[4]= a[4]+1等价,表示将a[4]的原值加1*/
;需要注意的是数值型数组不能用数组名输入输出它的全部
元素,只能是单个元素输入,单个元素输出。如:
例5.1中的程序段:
for(i=0;i10;i++)
scanf(%d,a[i]);
不能写成:
scanf(%d,a);
例5.1中的程序段:
for(i=0;i10;i++)
printf(%4d,a[i]);
不能写成:
printf(%d,a);
;5.1.3 一维数组的指针
?
C语言规定,数组存储空间的首地址存放在数组名中,即数组名指向下标为0的数组元素。由此可知数组名不仅是一个标识名字,它本身又是个地址量。由于数组的存储位置是系统分配的,用户不能任意改变和设置,所以,表示数组存储起始位置的数组名是个地址常量。另外,数组中的每个元素都有地址,其表示形式为:数组名[下标],其值也是地址常量。
如:数组a的首地址为a或a[0],数组元素a[3]的地址为a[3]。
需要说明的是:虽然数组名代表数组存放的起始地址,但系统并不为数组名分配内存单元。另外,对数组名用取地址符“”进行运算没有意义。 ;1.指向一维数组元素的指针变量
上面介绍了指向数组元素的指针常量,C语言中还可以定义
指向数组元素
您可能关注的文档
- A2012期末复习“音乐与健康”通用.ppt
- ACM普及第一次学习PPT.ppt
- ACL原理及配置实例.ppt
- ACM递归与分治策略.ppt
- 9第九讲零件图[表面粗糙度和技术要求].ppt
- ACCESS实例教程[第8章vba].ppt
- ACM解题炮兵阵地.ppt
- AC一单元[第1课时]原子核外电子的运动.ppt
- ac四章新格律诗的艺术成就[幻灯].ppt
- AdobePremiereProCS3中文版影视编辑案例教程第5章.ppt
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
文档评论(0)