什么是函数指针呢?
本质上还是一个指针,用来指向一个函数的地址
typedef int(*FUNC)(int,int);
定义了一个函数指针类型,类型名称为FUNC
,该函数指针类型的变量可以指向这么一类函数:返回值为int
,形参为int,int
FUNC f;
注意:函数的名称即为函数的地址
指针函数是返回值为指针的函数,不要混淆
例子:调用随机函数
#include
#include
#include
typedef int (*Func)(int, int);
int max(int num1, int num2);
int min(int num1, int num2);
int add(int num1, int num2);
int drop(int num1, int num2);
int main() {
Func funcs[] = {max, min, add, drop};
srand(time(NULL));
int rand_num = rand() % 4;
int result = funcs[rand_num](10, 5);
printf("result:%d\n",result);
return 0;
}
int max(int num1, int num2) {
return num1 > num2 ? num1 : num2;
}
int min(int num1, int num2) {
return num1 > num2 ? num2 : num1;
}
int add(int num1, int num2) {
return num1 + num2;
}
int drop(int num1, int num2) {
return num1 - num2;
}