函数参数也可以是函数指针变量。指针变量的常见用途之一就是把指针作为参数传递到其他函数,指向函数的指针也可以作为参数,以实现函数地址的传递。
#include<stdio.h>
#include<stdlib.h>
int add(int a,int b)
{
return a+b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a*b;
}
int dev(int a, int b)
{
return a / b;
}
typedef int(*fptr)(int,int);//定义一个函数指针类型fptr
void calculator(fptr funptr/*函数指针作为函数参数*/, int a, int b)
{
printf("the result is %d\n", funptr(a, b));
}
int main()
{
int a = 5,b = 2;
calculator(add, a, b);//函数名也是函数指针,可以作为函数参数
calculator(sub, a, b);
calculator(mul, a, b);
calculator(dev, a, b);
system("pause");
return 0;
}