C语言--指针--指向函数的指针

小鱼儿 2023-05-28 05:10 113阅读 0赞

例题10-23 设一个函数process,在调用它的时候,每次实现不同的功能。输入a,b两个数,第一次调用process时找出a,b中大者,第二次找出其中小者,第三次求a,b之和

  1. //例题10-23 设一个函数process,在调用它的时候,每次实现不同的功能。输入a,b两个数,第一次调用process时找出a,b中大者,第二次找出其中小者,第三次求a,b之和
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int max(int,int); //note:对作为实参的函数:max(),min(),add(),应当在主调函数中用函数原型作函数声明
  6. int min(int,int);
  7. int add(int,int);
  8. void process(int,int,int(*fun)(int,int));//函数声明
  9. int a,b;
  10. printf("enter a and b:");
  11. scanf("%d %d",&a,&b);
  12. printf("max=");
  13. process(a,b,max);
  14. //将函数名max作为实参将其入口地址传送给process函数中的形参fun
  15. //此时 (*fun)(x,y) == max(x,y)
  16. printf("min=");
  17. process(a,b,min);
  18. printf("sum=");
  19. process(a,b,add);
  20. }
  21. int max(int x,int y)
  22. {
  23. int z;
  24. if(x>y) z=x;
  25. else z=y;
  26. return z;
  27. }
  28. int min(int x,int y)
  29. {
  30. int z;
  31. if(x<y) z=x;
  32. else z=y;
  33. return z;
  34. }
  35. int add(int x,int y)
  36. {
  37. return x+y;
  38. }
  39. void process(int x,int y,int(*fun)(int,int))
  40. //int(*fun)(int,int) fun是指向函数的指针变量
  41. {
  42. int result;
  43. result=(*fun)(x,y);
  44. printf("%d\n",result);
  45. }

输入:2 6
结果如图:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,113人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言基础语法之指向函数指针

    指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解。 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法