1、前言
这里有两个绕来绕去的东西,函数指针和指针函数;对于四个字,我们首先只看后面两个字,这样方便我们记忆;
函数指针,本质是指针;是指向函数入口地址的指针。
指针函数,本质是函数;返回类型为指针的函数。
2、介绍
对于一个函数而言,函数名是指向函数第一条指令的常量指针。在程序编译之后,编译器会为每个函数分配首地址,即该函数第一条指令的地址。一般情况下,我们可以用一个指针来保存这个地址,而这个指针就是函数指针。所以函数指针实际就是指向函数的别名,我们就可以用这个指针来调用这个函数。
3、用途
函数指针有两个用途:(1)调用函数,(2)做函数的参数
4、声明方法
普通声明方法:
利用typedef来简化声明和定义的操作:
具体的简化效果在后面给出例子明了地说明简化带来的方便。
5、示例
定义三个函数,分别对两个int型的变量做操作,up函数用于两个变量的加一操作,down函数用于两个变量的减一操作,print函数用于打印对应的操作和操作后的结果,实现代码如下:
利用typedef简化之后的代码如下,可以看出的确较少了一部分繁琐又冗长的代码;
运行结果:

6、注意事项
(1)声明函数指针时,其返回值类型、参数个数、参数类型等应该与需要它指向的函数保持一致,否者编译器会报错;
(2)利用函数指针指向某一个函数的时候,只需要将函数名赋值给函数指针即可,不需要附带函数名后的参数;