- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 构造数据类型 本章学习内容 掌握数组的概念以及应用; 理解指针的概念,掌握指针的使用; 掌握指针与数组的区别,能够使用多重指针以及指针与数组的多种混合体,会分配动态数组; 掌握常用的字符串处理函数; 理解引用的概念,掌握引用型函数参数的用法; 掌握结构与联合类型的定义与应用,并注意二者之间的区别; 掌握枚举数据类型的使用。 本章目录 第十一讲 数 组 第十二讲 指针基础知识 第十三讲 字符指针、指针数组、指向指针的指针和常用字符串处理函数 第十四讲 指针和函数 第十五讲 动态存储分配、void指针和引用 第十六讲 结构、联合与枚举类型 本章小结 第十一讲 数 组 一、一维数组的定义、初始化、数据赋值、数组越界 二、二维数组 三、数组作为函数参数 练一练 一、一维数组的定义、初始化、数据赋值、数组越界 【实例5-1】 将学生成绩从大到小排序(学生成绩由数组初始化得到,使用冒泡法进行排序)。 点击打开【实例5-1】源程序。 程序运行结果如下: 1.一维数组的定义 (3)常量表达式为一维数组中存储的元素的个数,可以为常量或符号常量,必须是正整数,表示数组的大小或长度,不能为变量。 (4)方括号“[ ]”是数组下标运算符,在数组定义时用来限定数组元素的个数。 数组名是一个地址常量,不能作为赋值的目标。因此,不能将一个数组整体赋值给另外一个数组。 2.数组初始化 (1)其中{初值1,初值2,…,初值n}称为初值表,初值之间用逗号分隔。例如,定义了5个元素的整型数组a的语句如下: int a[5]={1,2,3,4,5}; (2)当对全部数组元素赋初值时,可以省略数组的大小,此时数组的实际大小就是初值列表中初值的个数。例如,定义具有5个元素的字符数组c的语句如下: char c[]={a,b,c,d,e}; (3)可以只给数组中部分元素赋初值。 int a[10]={1,2,3,4,5}; 3.数组引用 一维数组元素引用的一般格式为: 对一维数组的两点说明: (1)下标表达式可以是变量表达式,用来标识数组元素。 (2)C++中数组的下标从0开始,若数组中元素个数为n,则数组的下标依次为0,1,2,3,…, n-1,对应的数组元素依次为a[0],a[1],…,a[n-1]。例如,在【实例5-1】中第17行语句:t=a[i];中的a[i]就是对数组a中第i个元素的引用。 4.数组越界 C++中,编译和执行时并不检查数组下标是否越界。例如,如果有int a[10];语句,则该一维数组a中元素的最大下标值为9,若在程序中引用数组元素时使用a[10]则数组越界。但是在编译和执行时并不能检查出这种错误。 这是因为数组的名字即为数组的首地址,a[10]对应于内存地址a+10,但是此地址可能不在程序可以控制的范围内,由此带来的非法内存地址访问可能会对系统或程序产生不可预知的影响。所以,使用数组时需要特别注意检查下标是否越界。 二、二维数组 5.二维数组 三、数组作为函数参数 【实例5-3】 设计一个函数,计算二维数组每行元素值的和。). 点击打开【实例5-3】源程序。 程序分析: 在主函数中初始化一个二维数组并将每个元素都输出,然后调用子函数RowSum()计算每一行的元素之和,将和直接存放在每行的第一个元素中,返回主函数之后输出各行元素的和。 程序运行结果如下: 6.数组作为函数参数 数组名是一个地址,它可以作为函数的形参,接收实参传送来的地址,当形参接收实参传送来的地址后,形参数组与实参共享内存中的存储空间,形参值改变将影响实参的值。 数组作为形式参数时,函数调用时传递的是地址。所以,形式参数中数组的大小没有意义,可以省略。 关于数组作为函数参数的几点说明: (1)用数组名作函数参数,应该在主调函数和被调用函数中分别定义数组。例如,在【实例5-3】中table是实参数组名,a是形参数组名。且数据类型必须一致,否则结果将出错。 (2)用数组名作函数实参时,不是把数组元素的值传递给形参,而是把实参数组的起始地址传递给形参数组,这样两个数组就共占同一段内存单元。 (3)C++编译系统对形参数组大小不做检查,所以形参数组可以指定大小也可以不指定大小。 练一练 【练习5-1】 有一个3×4的矩阵,调用函数求所有元素中的最大值。 解:定义一个子函数fmax,在子函数fmax中设一个最大值max,并赋初值为arr[0][0],然后将arr[i][j]与max进行比较,如果arr[i][j]max,则将arr[i][j]赋给max,最后返回max值即为该数组中元素的最大值。注意在调用该函数时是
文档评论(0)