函数指针就是一个指针,定义形式为:
类型 (*指针变量名) (参数列表), 如 int (*pFunc) (int, int)或者int (*pFunc) (int i, int j);
函数名代表函数体的首地址;
#include<stdio.h>
#define Max_Data 1
#define Min_Data 0
int Max(int a, int b)
{
return (a>=b ? a:b);
}
int Min(int a, int b)
{
return (a>=b ? b:a);
}
int Compare(int a, int b, int Flag)
{
int (*p)(int i, int j); //函数指针记得加括号,是指针指针指针
if (Flag == Max_Data)
{
p = Max;
}
else
{
p = Min;
}
return p(a, b);
}
int main()
{
int i = 2, j = 3, ret;
ret = Compare(i, j, Max_Data);
printf("the Max Data is:%d.\n", ret);
ret = Compare(i, j, Min_Data);
printf("the Min Data is:%d.\n", ret);
return 0;
}