定义:函数的指针是指指向函数的指针。举例如下:
示例1:充当变量
#include <stdio.h>
#define GET_MAX 0
#define GET_MIN 1
int get_max(int i,int j)
{
return i>j?i:j;
}
int get_min(int m,int n)
{
return m>n?n:m;
}
int get_result(int x,int y,int flag)
{
int r;
int (*p)(int,int);
if(GET_MAX==flag)
{
p=get_max;
}
else if(GET_MIN==flag)
{
p=get_min;
}
r=p(x,y);
return r;
}
int main()
{
int a=5,b=8;
int num=get_result(a,b,GET_MAX);
printf("The max is %d \n",num);
return 0;
}
示例2:充当形参
#include <stdio.h>
int get_big(int x,int y)
{
return x>y?x:y;
}
int get_return(int i,int j,int m,int(*p)(int,int))
{
int ret;
ret=p(i,j);
ret=p(ret,m);
return ret;
}
void main()
{
int x=2,y=8,z=9;
int res=get_return(x,y,z,get_big);
printf("%d\n",res);
}
示例3:充当函数的返回值
#include <stdio.h>
int get_big(int i,int j)
{
return i>j?i:j;
}
int (*get_function(int a))(int ,int)
{
printf("the number is %d\n",a);
return get_big;
}
int main()
{
int i=5,j=10,max;
int (*p)(int,int);
p=get_function(100);
max=p(i,j);
printf("the max is %d\n",max);
return 0;
}