引入
其实,作为指向函数的指针变量
,它最重要的作用就是把函数的地址,作为参数传递给其他的函数
。
例子
输入三个数,将其中最大值和最小值的和输出出来。
1 |
|
说明
上面我们定义了两个自定义函数:
max 和 min
又定义了一个求和函数
count
该函数有三个参数
前两个是指向函数的指针变量
,明白了上面的配置之后
在调用 count 函数的时候,main 传递过来的实参是:
max 和 min 函数的入口地址
count 运行的时候,就可以直接用指针变量调用 max 和 min 这两个函数了。
为什么我们不直接在函数里面调用 max 和 min 函数,非要将他们作为参数来使用呢?这不是更麻烦了嘛?
是的,如果只调用 max 和 min 函数就会显得麻烦了,但是如果有多个函数的话:
求两个最大值的和?
两个最小值的和?
最大值和平均数的和呢?
那么,上面的 count 函数不用做任何调整,在 main 主调的时候,传递过去需要的函数即可。
例如:
1 | count(avg,max,num); //平均数和最大数的和 |
这样同一个 count 函数,装入不同的函数参数,就可以实现不同的功能,在调用函数的时候更加的灵活!
例2
我们再举一个例子,输入两个数,根据选择不同,求这两个数和、最大值和最小值。
1 |
|
这个例子中,我们根据选择的不同,把不同的函数灌入result函数中
,得到不同的结果,这就是将函数指针作为参数灵活使用最好的体现。
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。