C语言编程中函数指针的定义及使用

  C语言中函数指针的定义:

  typedef int (*funcPtr)(int, int)表示定义了一个函数指针funcPtr,这个函数指针只能指向如下:

  int add(int, int)、int sub(int, int)、int mul(int, int)、int div(int, int)、int mod(int, int)等类型的函数,这种函数的特点为:

  返回类型为int型;函数名称无所谓;函数有两个int型的参数。因此有如下例子:  

复制代码
 1 #include <stdio.h>                                                                       
 2 
 3 int main(int argc, char **argv)
 4 {
 5     int add(int var1, int var2){
 6         return var1 + var2;
 7     }
 8 
 9     int sub(int var1, int var2){
10         return var1 - var2;
11     }
12 
13     int mul(int var1, int var2){
14         return var1 * var2;
15     }
16 
17     int div(int var1, int var2){
18         return var1 / var2;
19     }
20 
21     typedef int (*funcPtr)(int, int);
22 
23     funcPtr arrFun[4] = {add, sub, mul, div};
24     funcPtr cal;
25 
26     char sel;
27     int var1;
28     int var2;
29     printf("Please input two numbers: ");
30     scanf("%d %d", &var1, &var2);
31     printf("Plesea input the select in('+', '-', '*', '\'): ");
32     getchar();
33     scanf("%c", &sel);
34     switch(sel){
35         case '+':
36             cal = arrFun[0];
37             break;
38 
39         case '-':
40             cal = arrFun[1];
41             break;
42 
43         case '*':
44             cal = arrFun[2];
45             break;
46 
47         case '/':
48             cal = arrFun[3];
49             break;
50     }
51     printf("You input: %d %c %d = %d", var1, sel, var2, cal(var1, var2));
52 
53     return 0;
54 }
复制代码

  如果第一次输入的为6  3

  第二次输入的为+,执行结果为:

  Please input two numbers: 6 3
  Please input the select in('+', '-', '*', ''): +
  You input: 6 + 3 = 9
  在这段代码中有个小bug,就是第32行代码是没有实际用处的,但是它又是最有用处的,否则,代码就不能正常运行,不信读者可以实施看吧。

  

  

posted @   叕叒双又  阅读(1982)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示