欢迎来到天天文库
浏览记录
ID:41193714
大小:307.50 KB
页数:75页
时间:2019-08-18
《C程序设计案例教程教学课件ppt作者刘玉山第4章数组指针与引用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数组、指针与引用学习目标1)了解多维数组、指针和引用的作用。2)理解指针和引用的区别和联系。3)掌握一维和二维数组的用法。4)掌握new和delete的用法。第4章数组、指针与引用4.1数组4.2指针4.3引用4.4动态存储方式4.1数组数组是由一组具有相同数据类型的元素组成的集合,这些数组元素在内存中占有一片连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。根据数组的维数,分为一维数组、二维数组和多维数组。常用的是一维数组和二维数组。4.1.1一维数组任务1:求一个班级内期末C++成绩的平
2、均分(1)任务描述对于一个班级而言,期末某门课程成绩的平均分是经常被我们所求。这里就以课程C++的成绩为例来求计05-1班C++成绩的平均分。(2)任务分析既然是求某门课程的平均分,就需要知道班内每一个学生的个人成绩。而个人的成绩需要存储,要用到前面我们介绍了变量。如果要使这些成绩都单独放在一个个变量中,需要为每一个学生都声明一个变量。比较繁琐,而且不变于记忆。如果用一段连续的地址空间来存储这些成绩,我们通过首地址的运算,就可以得到该地址中所存储的数据值。这样通过数组简化了用户的操作,提高程序的简洁性和可读性。(2)任务分析这里选取数
3、据的存储类型为float型,并且选取的变量地址与部分学号的对应关系见表4-1。(3)任务实现见程序Student411.cpp(4)要点总结这里学生的成绩存储在一片连续的地址空间中,通过对变量地址的加运算,从而得到了其中存储的成绩值。对于函数“floatavg(floatA[],intn)”的选择,需要输入n个学生的成绩,而A又无法得到其长度,所以只能通过参变量n来指定,避免访问越界。而成绩定义的数据类型为float类型,所以返回类型自然也应该是float类型。(5)涉及到知识点一维数组:1)一维数组的定义格式:〈类型〉〈数组名〉[〈
4、常量表达式〉];2)一维数组的初始化。C++语言中允许在定义数组时对其中的全部或部分指定初始值,称为数组的初始化。初始化的语法格式为:〈类型〉〈数组名〉[〈常量表达式〉]={值1,值2,…,值n};(5)涉及到知识点3)数组的赋值。①用“=”赋值。与数组元素的初始化不同,在给数组元素赋值时,必须逐一赋值。②用流命令赋值。其语法格式为:cin>>数组名[下标];(5)涉及到知识点4)数组元素的引用数组在定义后即可引用。其引用形式为:数组名[下标]表示要引用的是该数组中第(下标+1)个元素。4.1.2二维数组任务2:求一个班期末C++成绩
5、的平均分,要求数据的存储用二维数组(1)任务描述对于上一个任务而言,对学生成绩的存储,我们通过数组的下标来映射学生的编号。这对我们来说,缺少灵活性。只能是一个接着另一个存储。即使中间空着学号,它空着的空间也不能被其他的学号所利用等等。这里要求采用二维数组来存储学生的编号和科目的成绩,然后再求班内学生的C++期末成绩的平均分。(2)任务分析与设计由于上一个任务的实现是通过一维数组来存储每个学生的C++成绩,而数组的下标表示学生的编号。缺乏灵活性。这里我们对学号和成绩进行分别存储。(2)任务分析与设计由于有两个信息--学号和成绩需要存储,
6、所以这里选择二维数组来进行存储。这里假设有n个学生,那么该数组就可以声明为A[n][2]。下标n表示学生的个数,下标2表示每一个学生需要存储两个信息(学号和成绩)。由于数组只能存放同一种数据类型。所以这里就需要我们作出一种选择,要么以学号的数据类型为该数组的数据类型,要么以成绩的数据类型为该数组的数据类型。假设我们的成绩如上一个任务所描述的那样,选取float数据类型。那么学号也只能存储为float数据类型。不过我们知道学号不可能被设计为带小数的数字。值得庆幸的是int可以被系统默认转化为float。(3)任务实现见Student41
7、2.cpp(4)要点总结从以上两个任务中我们认识到一个问题的解决,很大程度上依赖于对问题的分析以及在该分析之上的数据结构的选择。通过这两个任务我们还认识到数组中存储的是相同数据类型的数据。所以对于二维数组,如果选择它用来存储两个不同意义的数据,一定慎重。判断是否可以转化为一种数据类型。(5)涉及到知识点二维数组:1)二维数组的定义格式。<类型><数组名>[<常量表达式1>][<常量表达式2>];2)二维数组的初始化。和一维数组一样,二维数组也能在定义时被初始化,只是要注意必须按照前面所讲的存储顺序列出数组元素的值。(5)涉及到知识点3
8、)二维数组的访问对二维数组的访问与一维数组类似,也是通过数组名称和下标一起来定位要访问的元素在数组中的位置。其格式为:<数组名>[<表达式1>][<表达式2>];4.1.3多维数组任务3:求计算机专业3个班每个班期末的C
此文档下载收益归作者所有