函数指针
指向函数的指针变量
作用
1:调用函数
2:作为函数的参数
声明格式
返回类型 (*指针名) (形式参数)
如 int (*Function)(int x,int y);
例子
#include<stdio.h>
typedef int (*Function)(int x,int y);
int Max(int a,int b);
int Min(int a,int b);
void Print(int (*Max)(int a,int b), int (*Min)(int c,int d),int a,int b,int c,int d);
void PrintPrint(Function f1, Function f2,int a,int b,int c,int d);
int main()
{
Function f1,f2;
f1=Max; //f1成为指向Max的指针
f2=Min; //f1成为指向Min的指针
printf("函数指针调用函数:Max(1,2)=%d Min(3,4)=%d\n",f1(1,2),f2(3,4));//通过指针调用函数
Print(Max,Min,1,2,3,4);
PrintPrint(f1,f2,5,6,7,8);
}
int Max(int a,int b)
{
if(a>b) return a;
else return b;
}
int Min(int a,int b)
{
if(a<b) return a;
else return b;
}
void Print(int (*Max)(int a,int b), int (*Min)(int c,int d),int a,int b,int c,int d)
{
printf("函数Print:Max(%d,%d)=%d Min(%d,%d)=%d\n",a,b,Max(a,b),c,d,Min(c,d));
}
void PrintPrint(Function f1, Function f2,int a,int b,int c,int d)
{
printf("函数PrintPrint:Max(%d,%d)=%d Min(%d,%d)=%d\n",a,b,f1(a,b),c,d,f2(c,d));
}