本程序定义了一个process的函数,其参数有三个,两个整型参数,一个函数指针参数。函数指针是一种指向函数的指针,可以用来调用相关的函数。当函数指针不是作为参数的时候,必须要进行初始化给他赋值,例如int (*p)(int,int); *p=max或者p=max都是可以的,调用函数时直接写(*p)(a,b)或p(a,b)。
1 #include <stdio.h> 2 int main() 3 { 4 int a, b; 5 int max(int,int); //声明max函数 6 int min(int,int); //声明min函数 7 int add(int,int); //声明add函数 8 void process(int,int,int(*fun)(int,int)); //声明process函数 9 scanf("%d%d",&a, &b); 10 printf("max="); 11 process(a, b, max); //调用max函数 12 printf("min="); 13 process(a, b, min); //调用min函数 14 printf("add="); 15 process(a,b,add); //调用add函数 16 } 17 int max(int x, int y) //定义max函数 18 { 19 int z; 20 if(x>y) z=x; 21 else z=y; 22 return z; 23 } 24 25 int min(int x, int y) //定义min函数 26 { 27 int z; 28 if(x<y) z=x; 29 else z=y; 30 return z; 31 } 32 33 int add(int x, int y) //定义add函数
34 { 35 return (x+y); 36 } 37 38 void process(int x, int y, int (*fun)(int, int)) //定义process函数 39 { 40 41 int result; 42 result = (*fun)(x, y); 43 printf("%d\n",result); 44 45 }