[C] 纯文本查看 复制代码 // 函数指针
/*
函数指针的概念:
函数名存储的就是函数的首地址,我们把这个函数的首地址赋值给一个指针,让这个指针指向该函数,
可以通过该指针找到并调用该函数。
把这种指向函数的指针变量称为“函数指针变量”
1)函数指针定义格式:
类型 (*指针名)(参数列表); //形参列表可以只写形参类型,不写形参变量名
2)函数指针初始化格式
指针名 = 函数名;
3)用函数指针调用函数(间接访问)格式:
指针名(参数列表);
或者
(*指针名)(参数列表);
函数指针的使用步骤:
1)定义一个函数指针
2)初始化函数指针
3)用函数指针间接调用函数
*/
#include <stdio.h>
int max(int a,int b);
int min(int x,int y);
int main(int argc, const char * argv[]) {
//定义一个函数指针 M,
//M 可以指向一个返回值为整型,有两个整型参数的所有函数。
int (*M)(int,int);//形参变量名可以省略,类型一定要写
//初始化函数指针
M = max;
//用函数指正间接调用函数
int ma = M(12,80);//80
printf("max = %d\n",ma);
//==================================================
//改变函数指针的指向,重新赋值
M = min;
//用函数指正间接调用函数
int n = (*M)(1,99);//1,用 (*M) 的括号一定不能少,
printf("min = %d\n",n);
return 0;
}
//求两个数中的最大值
int max(int a,int b){
int m = a > b ? a : b;
return m;
}
//求两个数中的最小值
int min(int x,int y){
int m = x < y ? x : y;
return m;
}
|