/*Author:Choas Lee

*Date:2012-02-28

*/

#include

#include

#include

float add(float a,float b){return a+b;}

float minus(float a,float b){return a-b;}

float multiply(float a,float b){return a*b;}

float divide(float a,float b){return a/b;}

//该函数的返回值是一个函数

float(* FunctionMap(char op) )(float,float)

{

switch(op)

{

case '+':

return add;

break;

case '-':

return minus;

break;

case '*':

return multiply;

break;

case '\\':

return divide;

break;

default:

exit(1);

}

}

int main()

{

float a=10,b=5;

char ops[]={'+','-','*','\\'};

int len=strlen(ops);

int i=0;

float (*returned_function_pointer)(float,float);//定义了一个函数指针

for(i=0;i

{

returned_function_pointer=FunctionMap(ops[i]);

printf("the result caculated by the operator %c is %f\n",ops[i],returned_function_pointer(a,b));

}

return 0;

}

输出:

the result caculated by the operator + is 15.000000

the result caculated by the operator - is 5.000000

the result caculated by the operator * is 50.000000

the result caculated by the operator \ is 2.000000

参考:

1.http://hipercomer.blog.51cto.com/4415661/792301

c语言map函数指针,函数指针 - 弧光守望者 - OSCHINA - 中文开源技术交流社区相关推荐

  1. 守望者逃离算法C语言代码,BCJR算法 - 弧光守望者 - OSCHINA - 中文开源技术交流社区...

    function Turbo_Decoder % 输入,信息位和校验位 t = [1 1 -1 1 1 -1 1 1 -1 1 1 1 -1 1 -1 -1]; U = [+0.213 -0.371 ...

  2. 按照c语言规首字母只能是,C语言--指针 - osc_nbqoh20k的个人空间 - OSCHINA - 中文开源技术交流社区...

    [TOC] #知识内容总结 ##为什么要学习指针? 我们已经学习了如何用数组存放多个相同类型的数据并进行运算,但数组的长度在定义时必须给定以后不能再改变.如果事先无法确定需要处理数据数量,应该如何处理 ...

  3. C语言调用自定义交换函,C语言函数篇 - personal page of Msingwen - OSCHINA - 中文开源技术交流社区...

    函数(一): 函数知识点 函数:能实现某种特定功能的代码 分为系统函数(内置函数) (例如printf scanf  getchar  putchar  time  ..) 和  自定义函数  两类! ...

  4. jmu-python-函数-找钱_python函数题 - osc_wv1mxwu2的个人空间 - OSCHINA - 中文开源技术交流社区...

    请大家严格按照下面顺序编写圆形生成器程序. : 定义函数getCircleArea(r),可以对指定r计算圆面积.计算公式math库的pi*r*r. 定义函数get_rList(n),功能:输入n个值 ...

  5. c语言里有队列函数没,C语言队列的实现 - osc_tf30cc36的个人空间 - OSCHINA - 中文开源技术交流社区...

    对于C语言的队列来说,也有顺序存储和链表存储两种方式. 顺序存储容量固定,链表存储随时分配释放更加灵活. 下面是链表实现的队列初始化.入队.出队函数实现: #include #include #inc ...

  6. linux fflush函数,fflush - wwliu的个人页面 - OSCHINA - 中文开源技术交流社区

    概述 函数名: fflush 功 能: 清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件 头文件: #include 原型:int fflush(FILE *stream) #include # ...

  7. c语言的文件打开模式,c语言文件打开模式 - osc_b2jf5efr的个人空间 - OSCHINA - 中文开源技术交流社区...

    (转载) 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ab rb+ (r+ ...

  8. java实现自举_实现语言的自举 - 沙枣的个人空间 - OSCHINA - 中文开源技术交流社区...

    几乎所有的语言项目,其核心都是用更底层的语言写的. 底层语言大部分是 C,C++,而扩展这门语言的核心,就要用另外一种语言 去写.这给语言设计者较大的挑战. 开发语言必须具备底层语言的编写能力,而为了 ...

  9. c语言分号的转义字符,C语言中的转义字符 - osc_9gm4ypss的个人空间 - OSCHINA - 中文开源技术交流社区...

    C语言中的转义字符 在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么.这类字符称为可显示字符,如a.b.c.$.+和空格符等都是可显示字 ...

最新文章

  1. 11个问题助你彻底搞懂工业互联网
  2. JSP快速入门教程——全十讲
  3. 日常生活 -- 开博二周年
  4. strange behavior:why u31000 is accessed for Extension project
  5. 前端学习(1837):前端面试题之变量提升
  6. xenserver6.2 内存leak故障处理
  7. SQL基础E-R图画法(三)
  8. Gartner磁盘阵列魔力象限:华为、昆腾、Infinidat势头迅猛
  9. JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
  10. python电脑版-python
  11. TM1640数码管控制器移植STM32HAL库
  12. Mac配置maven环境变量
  13. 以虎嗅网4W+文章的文本挖掘为例,展现数据分析的一整套流程
  14. java计算机毕业设计ssm网上报名系统
  15. 网页图片无缝循环滚动html代码
  16. anaconda下载python3.6_anaconda python3.6下载
  17. STM32逆变器电源设计方案,基于STM32F103控制器
  18. 生产者消费者模型的实现(线程通信)
  19. OCaml for Haskellers
  20. 女人没嫁出去的极端理由

热门文章

  1. IBM ThinkPad笔记本资料速查
  2. iOS开发(swift):UI界面
  3. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day3】 —— 集合框架1
  4. luogu P3393 逃离僵尸岛
  5. Android手机 能装 ios,苹果AirTag支持哪些手机设备-AirTag安卓手机可以使用吗?-Appfound...
  6. 数据挖掘与数据仓库——数据仓库、 OLAP及数据立方体计算
  7. [已出]出售二手Macbook pro 374 , 详见内文 (有文 有图 有视频)
  8. 尚品宫韩式烧烤 无忧致富好项目
  9. vue导出excel使用xlsx、file-saver、xlsx-style、yxg-xlsx-style 遇到的坑
  10. iphone 3 gs