内容正文:
项目八 指针
1
C语言程序设计基础
知识目标
掌握指针变量的定义与使用
掌握通过指针变量来引用数组
掌握通过指针变量来引用字符串
掌握指针数组
了解函数指针与指针函数
了解动态内存分配与指向它的指针变量
技能目标
学会指针变量的定义与使用
学会通过指针变量来引用数组
学会通过指针变量来引用字符串
学会指针数组的定义与使用
思政目标
培养全局观,大局意识
培养沟通能力与协调能力
2
任务5
——函数指针和指针函数
进阶篇
3
1. 什么是函数的指针
2. 函数指针的使用
(1)赋值:函数指针变量=函数名;
(2)引用:(*函数指针变量)(实参表列);
(3)对指向函数的指针变量,诸如pointer+n、pointer++、pointer--等运算是没有意义的。
(4)指向函数的指针变量的常用用途之一,就是将函数指针作参数,传递到其它函数。
指针——进阶篇
5.1指向函数的指针
4
【例8-13】用函数求5门成绩中的最高分。
【解题思路】定义一个函数max,实现求5门成绩中的大者。在主函数调用max函数,除了可以通过函数名调用外,还可以通过指向函数的指针变量来实现。
【方法1】通过函数名调用函数。
指针——进阶篇
5
【程序代码】
指针——进阶篇
6
【运行结果】
指针——进阶篇
7
【方法2】通过指针变量调用它所指向的函数。
指针——进阶篇
8
【程序代码】
指针——进阶篇
9
3. 函数指针的使用
指向函数的指针变量的一个重要用途是把函数的入口地址作为参数传递到其他函数。指向函数的指针可以作为函数参数,把函数的人口地址传递给形参,这样就能够在被调用的函数中使用实参函数。
指针——进阶篇
10
【例8-14】现有学生5门成绩,要求显示界面有1-4选项,分别对应总分、平均分、最高分、最低分。
【解题思路】定义4个函数sum、average、max和min,分别用来求总分、平均分、最高分、最低分。在主函数中根据用户输入的数字,通过调用manage函数实现4个功能。在manage函数中定义一个指向函数的指针,用于接收实参函数名。
指针——进阶篇
11
【程序代码】
指针——进阶篇
12
13
14
【运行结果】
指针——进阶篇
15
16
一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已。
定义返回指针值的函数的原型的一般形式为:
类型名*函数名(参数表列);
指针——进阶篇
5.2返回指针值的函数
17
【例8-15】有一个学习小组,5个学生,学4门课,要求在用户输入学生序号以后,能输出该学生的全部成绩。用指针函数来实现。
【解题思路】定义一个二维数组score,用来存放学生成绩。定义一个查询学生成绩的函数query,它是一个返回指针的函数,形参是指向一维数组的指针变量和整型变量number,从主函数将数组名score 和要找的学生号number传递给形参。函数的返回值是&score[number][0](即存放序号为number的学生的序号为0的课程的数组元素的地址)。然后在主函数中调用print函数输出该学生的全部成绩。
指针——进阶篇
18
【程序代码】
指针——进阶篇
19
20
【运行结果】
指针——进阶篇
21
$$