用指向函数的指针作函数参数

本程序定义了一个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 }

猜你喜欢

转载自blog.csdn.net/it8343/article/details/80199496
今日推荐