当前位置: 首页 > news >正文

推荐盐城网站建设做网站如何设计数据库

推荐盐城网站建设,做网站如何设计数据库,app开发者,兖州住房与城乡建设局网站Hi~#xff01;这里是奋斗的小羊#xff0c;很荣幸各位能阅读我的文章#xff0c;诚请评论指点#xff0c;关注收藏#xff0c;欢迎欢迎~~ #x1f4a5;个人主页#xff1a;小羊在奋斗 #x1f4a5;所属专栏#xff1a;C语言 本系列文章为个人学习笔记#x…                   Hi~这里是奋斗的小羊很荣幸各位能阅读我的文章诚请评论指点关注收藏欢迎欢迎~~                                      个人主页小羊在奋斗                                 所属专栏C语言    本系列文章为个人学习笔记在这里撰写成文一为巩固知识二为同样是初学者的学友展示一些我的学习过程及心得。文笔、排版拙劣望见谅。 4、函数指针数组 5、转移表 4、函数指针数组 在上篇文章中我们又学了一个新的指针类型——函数指针类型那学了函数指针你是否还记得我们还学过指针数组呢指针数组是一个数组数组元素是相同类型的指针变量。那我们是不是也可以将相同类型的函数指针变量存到一个指针数组内呢答案是可以的。 存放函数指针变量的数组就叫做函数指针数组函数指针数组出现的意义我就不多说了跟其他类型数组的作用一样。 来看下面的示例 #include stdio.hint add(int x, int y) {return x y; }int sub(int x, int y) {return x - y; }int mul(int x, int y) {return x * y; }int div(int x, int y) {return x / y; }int main() {//int (*pf1)(int, int) add;//int (*pf2)(int, int) sub;//int (*pf3)(int, int) mul;//int (*pf4)(int, int) div;int (*pf[4])(int, int) { add, sub, mul, div };//函数指针数组return 0; } 可以看到函数指针数组能避免我们需要多个相同函数指针类型变量创建时的繁琐。 为了验证上面创建的函数指针数组我们来遍历上面的数组将数组内所有的函数指针指向的函数都使用一遍 可以看到我们通过数组内对应下标的元素找到相应的函数地址再进行函数调用完成了相关的操作得到了我们预期的结果。 值得注意的是不要忘了数组内存放的是相同类型的元素。如果这些函数的参数个数、参数类型、函数的返回值类型有差异则不能存到同一个函数指针数组中。 5、转移表 我们学了函数指针数组有什么用呢函数指针数组的用途就是接下来我们要学习的转移表。 在介绍转移表之前我们先来完成一个能实现计算器功能的小程序。 #include stdio.hint add(int x, int y) {return x y; }int sub(int x, int y) {return x - y; }int mul(int x, int y) {return x * y; }int div(int x, int y) {return x / y; }void menu() {printf(*****************************\n);printf(******* 0.exit ******\n);printf(******* 1.add 2.sub ******\n);printf(******* 3.mul 4.div ******\n);printf(*****************************\n); }int main() {int input 0;int x 0;int y 0;int ret 0;do{menu();printf(请选择);scanf(%d, input);switch (input){case 1:printf(请输入两个操作数);scanf(%d %d, x, y);ret add(x, y);printf(结果是%d\n, ret);break;case 2:printf(请输入两个操作数);scanf(%d %d, x, y);ret sub(x, y);printf(结果是%d\n, ret);break;case 3:printf(请输入两个操作数);scanf(%d %d, x, y);ret mul(x, y);printf(结果是%d\n, ret);break;case 4:printf(请输入两个操作数);scanf(%d %d, x, y);ret div(x, y);printf(结果是%d\n, ret);break;case 0:printf(退出计算器\n);break;default:printf(选择错误请重新选择\n);break;}} while (input);return 0; } 上面的程序还不能实现更多的计算功能比如 、^、|、~、、 等想要增加更多的功能我们不仅要写更多的自定义函数还要增加更多的 case 语句实现起来有点繁琐完成后将得到一个代码量比较大的小程序。那有没有什么办法既能实现计算器的功能代码量又没有那么大想增加别的功能的时候也不麻烦呢 我们可以用刚学的函数指针数组来将四个自定义函数统一管理起来通过数组下标访问对应的元素来实现函数调用这样代码量就能大大减少。不仅如此我们想增加某些功能的时候只需要做两步第一步写好对应的自定义函数第二步增大数组的大小后再将函数名存到数组中就完成了。我们去掉了 switch 语句用 if—else 分支来判断我们选择。具体代码实现如下 #include stdio.h #define N 5int add(int x, int y) {return x y; }int sub(int x, int y) {return x - y; }int mul(int x, int y) {return x * y; }int div(int x, int y) {return x / y; }void menu() {printf(*****************************\n);printf(******* 0.exit ******\n);printf(******* 1.add 2.sub ******\n);printf(******* 3.mul 4.div ******\n);printf(*****************************\n); }int main() {int input 0;int x 0;int y 0;int ret 0;int (*pf[N])(int, int) { 0, add, sub, mul, div }; //多加一个数字0为了让下标对应do // 0 1 2 3 4{menu();printf(请选择);scanf(%d, input);if (input 0 input N)//使用if判断代替多条case语句{printf(请输入两个操作数);scanf(%d %d, x, y);ret pf[input](x, y);printf(结果是%d\n, ret);}else if (0 input){printf(退出计算器!\n);}else{printf(选择错误请重新选择\n);}} while (input);return 0; } 我们在上面的代码中创建了一个函数指针数组通过数组来访问相应的函数有一点跳转的意思。而我们上面代码中写的函数指针数组就是一个转移表。 什么是转移表呢 在C语言中转移表是一个包含指向函数或变量的指针的数组。通过使用转移表可以实现一种灵活的方式来实现条件分支和函数调用。转移表通常用于实现状态机或分派表等功能。通过在转移表中存储函数指针可以根据条件或索引值来动态选择要执行的函数从而提高代码的灵活性和可维护性。 如果觉得我的文章还不错请点赞、收藏 关注支持一下我会持续更新更好的文章。
http://www.w-s-a.com/news/702705/

相关文章:

  • ps怎么做响应式网站布局图现在做网站都是怎么做的
  • 导购 网站模板网站主题选择
  • 毕业设计医院网站设计怎么做郑州铭功路网站建设
  • 网站根域名是什么php做商城网站步骤
  • 建设网站的那个公司好网站建设万首先金手指12
  • 广东民航机场建设有限公司网站网站开发后端用什么
  • 做风帆网站需要多少钱越野车网站模板
  • 如何做网站平台销售用狗做头像的网站
  • 宝安电子厂做网站美食网页设计的制作过程
  • 网站logo提交学网站开发技术
  • 跨境电商平台网站建设广州西安官网seo推广
  • 我和你99谁做的网站小程序制作第三方平台
  • 建设银行网站用户名鹤岗网站seo
  • 做一元夺宝网站需要什么条件西安市做网站的公司
  • 零基础建设网站教程郑州做网站推广价格
  • 平面设计免费素材网站新开三端互通传奇网站
  • ppt模板免费下载 素材医疗seo网站优化推广怎么样
  • 课程网站怎么做wordpress文章改背景色
  • 网络营销从网站建设开始卖汽车配件怎么做网站
  • 手机商城网站制作公司济南想建设网站
  • .net 建网站网站网站做员工犯法吗
  • 电子商务网站建设说课稿棕色网站设计
  • 怎么做律所的官方网站红塔网站制作
  • 装一网装修平台官网惠州seo按天付费
  • 湖南建设监理报名网站东莞模块网站建设方案
  • 网站建设小组个人主页html源码
  • 响应式网站检测工具营销公司业务范围
  • 网站源码如何安装做游戏课程网站
  • 选服务好的网站建设亚洲砖码砖专区2022
  • 网站快速查找wordpress 悬停 图片 文字