8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-05
| 30页
| 73人阅读
| 5人下载
普通

内容正文:

项目八 指针 1 C语言程序设计基础 知识目标 掌握指针变量的定义与使用 掌握通过指针变量来引用数组 掌握通过指针变量来引用字符串 掌握指针数组 了解函数指针与指针函数 了解动态内存分配与指向它的指针变量 技能目标 学会指针变量的定义与使用 学会通过指针变量来引用数组 学会通过指针变量来引用字符串 学会指针数组的定义与使用 思政目标 培养全局观,大局意识 培养沟通能力与协调能力 2 任务2 ——通过指针引用数组 3 与指向普通变量的指针变量的定义方法一样 说明: (1)一个变量有地址,一个数组包含若个元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址赋值给一个指针变量)。所谓数组元素的指针就是数组元素的地址。 (2)数组名代表数组在内存中的起始地址(与第一个元素的地址相同),所以可以用数组名给指针变量赋值。 指针——基础篇 2.1指向数组的指针变量的定义与赋值 4 数组元素的引用,既可用下标法,也可用指针法。 使用下标法,直观; 使用指针法,能使目标程序占用内存少、运行速度快。 说明: (1)如果pointer的初值为&a[0](或者a),则pointer+i和a+i都是数组元素a[i]的地址;*(pointer+i)和*(a+i)就是数组元素a[i]的值。 (2)指向数组的指针变量也可将其看作是数组名,因而可按下标法来使用。 指针——基础篇 2.2通过指针引用数组元素 5 【例8-5】计算冬奥会花样滑冰选手的得分(10个裁判,要求去掉一个最高分、去掉一个最低分,再求平均分)。 【方法1】用下标法引用数组元素。 指针——基础篇 6 【程序代码】 指针——基础篇 7 【运行结果】 指针——基础篇 8 【方法2】用指针的下标表示法引用数组元素。 指针——基础篇 9 【程序代码】 指针——基础篇 10 【方法3】用指针变量引用数组元素。 指针——基础篇 11 【程序代码】 指针——基础篇 12 【方法4】通过指针变量自增运算引用数组元素。(自增运算实现指针的移动,效率最高)。 指针——基础篇 13 【程序代码】 指针——基础篇 14 数组元素作为函数的实参:数组元素的引用与一般变量的引用是一样的,传递的是数组元素的值,属于“值传递”方式。 数组名作函数参数:数组名可以用作函数的形参和实参,实参与形参应匹配。 实参:数组名、指针变量、数组名、指针变量。 形参:数组名、数组名、指针变量、指针变量。 指针——基础篇 2.3数组作函数参数 15 【例8-6】使用函数调用的方式实现例7-5。 【解题思路】发生函数调用时需要传递整个数组给形参变量,因此使用数组名或指针变量作实参。 【方法1】数组名作函数参数。 指针——基础篇 16 【程序代码】 指针——基础篇 17 18 【运行结果】 指针——基础篇 19 【方法2】指针变量作函数参数。 指针——基础篇 20 【程序代码】 指针——基础篇 21 22 【方法3】指针变量自增来遍历数组。 指针——基础篇 23 【程序代码】 指针——基础篇 24 【程序分析】 (1)方法1简洁明了,适合于对指针不太了解的读者。方法2和方法1类似,只是实参和形参换成了指针变量。方法3运行效率最高,也最容易出错。 (2)方法3中特别设定了一个指针变量first来记录数组首地址,因为随着指针变量的自增,它不再指向数组的首地址。这就是指向数组的指针变量自增最需要注意的问题,遍历数组结束一定要将指针变量指回数组的首地址,同时在遍历过程中,循环条件中代表数组首地址+数组长度的表达式,不能出现指针变量,否则会陷入死循环。 指针——基础篇 25 指向二维数组的指针变量 2. 行指针变量 (1)概念:指向由n个整数组成的一维数组的指针变量,可用于处理二维数组。 (2)定义格式:类型名 (*指针名)[数组长度] 例如int score[3][4],(*pointer)[4]。 (3)说明(pointer=score): 表示pointer是行指针变量,它只能指向包含有4个整型元素的一维数组。此时pointer的值就是该一维数组(二维数组的行)的首地址。pointer不能指向一维数组中的某一个元素。 指针——基础篇 2.4二维数组与指针 26 【例8-7】有一个学习小组,4个学生,学5门课,计算小组总平均分以及第n个学生的成绩。 【解题思路】由于有4*5个数据,因此使用指向二维数组的指针作函数参数。用函数init初始化学生成绩,函数average求总平均成绩,用函数query找出并保存第n个学生的成绩,用函数print输出第n个学生的成绩。 指针——基础篇 27 【程序代码】 指针——基础篇 28 29 【运行结果】 指针——基础篇 30 $$

资源预览图

8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
8.2通过指针引用数组(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。