#include <stdio.h>
//定义一个参数类型为 函数指针的函数
int calc(int x, int y, int (*pt)(int, int) );
int add(int,int);
int sub(int,int);
int getSum(int,int);
int getGap(int,int);
int main(void)
{
//定义一个函数指针(2要素:参数、返回值)
int (*pt)(int,int);
//为函数指针赋值
pt = getSum;
//用函数名调用函数
printf("用函数名调用函数:%d\n", getSum(9,1) );
//用函数指针调用函数1
printf("用函数指针调用函数:%d\n", pt(9,2) );
//用函数指针调用函数2
printf("用函数指针调用函数:%d\n", (*pt)(9,3) );
pt=getGap;
printf("求Gap:%d\n", (*pt)(9,3) );
printf("%p=====%p\n", pt, getGap);
//调用函数的实参为函数指针
printf("add:%d sub:%d \n", calc(2, 3, &add) ,calc(2, 3, sub) );
return 0;
}
//实现一个参数类型为 函数指针的函数
int calc(int x, int y, int (*pt)(int x, int y) )
{
return (*pt)(x,y);
}
int add(int a,int b)
{
return a + b;
}
int sub(int x,int y)
{
return x * y;
}
int getSum(int x,int y)
{
return x + y;
}
int getGap(int x,int y)
{
return x - y;
}