标题程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址 (也称“ 入口地址 ” )。
我们可以将函数的入口地址赋给一个指针变量 ,使该指针变量指向该函数。然后通过指针变量就可以调用这个函数。这种指向函数的指针变量称为“函数指针”。
-
定义形式
类型名 (* 指针变量名)(参数类型1, 参数类型2,…);
例如:int (*pf)(int ,char);
-
使用方法
用一个原型匹配的函数的名字给一个函数指针赋值。
通过函数指针可以调用它所指向的函数,写法为:函数指针名(实参表);
-
举例 1:
#include<iostream>
#include<cstring>
using namespace std;
void PrintMin(int a, int b) {
if (a < b)
printf("%d", a);
else
printf("%d", b);
}
int main() {
void(*pf)(int, int);
int x = 4, y = 5;
pf = PrintMin;
pf(x, y);
return 0;
}
- 举例 2:
类似 qsort库函数:void qsort (void *base, int nelem, unsigned int width,int ( *