C语言-使用函数指针 和 函数指针数组实现 计算器功能

在学习了指针进阶后,对各种指针如(数组指针、指针数组、函数指针等)有了更深刻的理解和印象,有了函数指针,对于我们在工程中的应用来说,可以帮我们省去冗杂的代码,提高代码的可阅读性,下面我们来看看是如何利用函数指针实现这个小计算机。

只使用函数指针

我们的main函数代码如上,我们使用一个do while循环,来完成这个计算机的每一次计算。训练里面嵌套一个switch循环,来给使用者选择要进行的计算类型。switch循环的条件是我们的输入input来给我们选择计算类型,在case里面运行函数来计算结果。

menu函数和计算函数都是比较简单的函数实现,在此不再详细介绍。

重点说一下calc函数,使用到了函数指针。
void calc(int (*pf)(int, int))

在这里,calc函数的参数是一个函数指针,返回类型是int,函数参数则是int,int,用于接受我们的计算函数,把函数的地址直接传入calc,使用calc的接受值来进行计算,可以减少冗杂重复的代码编写,实现程序的简洁化m3bro。

使用函数指针数组

在上面的基础上 ,我们使用函数指针数组可以更快的实现这个功能;思路提升之处在于把函数放进函数指针数组里,在选择界面功能时就能直接选择函数实现,提高程序运行效率。

只需要先定义一个函数指针数组:int (*arr[])(int, int) = { 0,Add,Sub,Mul,Div } ;

把函数指针放进数组里面,调用的时候,可以直接使用int ret=arr [input] (x,y);

这段调用的代码即是用input选择arr函数指针数组中的元素,也就是我们的函数功能,接着再传入x和y的值就能够实现,这两个方法都是各有妙处,每一种都有我们可以学习的思想之处。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值