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

免费ps软件网站查网站的建站系统

免费ps软件网站,查网站的建站系统,免费字体下载网站,小程序商城多少钱文章目录📀8.指向函数指针数组的指针📀9.回调函数📀8.指向函数指针数组的指针 🌰请看代码与注释👇 int Add(int x, int y) {return x y; } int Sub(int x, int y) {return x - y; } int main() {int (*pf)(int, int…

文章目录

  • 📀8.指向函数指针数组的指针
  • 📀9.回调函数

在这里插入图片描述

📀8.指向函数指针数组的指针

🌰请看代码与注释👇

int Add(int x, int y)
{return x + y;
}
int Sub(int x, int y)
{return x - y;
}
int main()
{int (*pf)(int, int) = Add;//函数指针数组int (*pfArr[4])(int, int) = { Add,Sub };int (*(*ppfArr)[4])(int, int) = &pfArr;//ppfArr 是一个指向函数数组的指针return 0;
}

📀9.回调函数

💡回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

🌰举个例子👇

💡还是一个简易计算器👇

int 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("******    1.add        2.sub     *******\n");printf("******    3.mul        4.div     *******\n");printf("******          5.exit           *******\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;
}

☝️虽然可以很好的运行出来,但是看一下这段代码是不是有些冗余🥺
在这里插入图片描述
大部分代码都是重复的,只有调用执行 + - * / 运算的时候不一样,那么我们可不可以把这每段重复的部分封装成一个函数呢❓

我们来进行优化改装一下👇

void Calc(int(*pf)(int, int))
{int x = 0;int y = 0;int ret = 0;printf("请输入两个操作数:>");scanf("%d %d", &x, &y);ret = pf(x, y);printf("%d\n", ret);
}

💡 我们把每次输入输出 执行运算封装成这样的一个函数,只保留一个,使用函数指针来接收
💡 优化后的源码👇

#include<stdio.h>int 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("******    1.add        2.sub     *******\n");printf("******    3.mul        4.div     *******\n");printf("******          5.exit           *******\n");printf("****************************************\n");
}
void Calc(int(*pf)(int, int))
{int x = 0;int y = 0;int ret = 0;printf("请输入两个操作数:>");scanf("%d %d", &x, &y);ret = pf(x, y);printf("%d\n", ret);
}
int main()
{int input = 0;do{menu();printf("请选择:>");scanf("%d", &input);switch (input){case 1:Calc(Add);break;case 2:Calc(Sub);break;case 3:Calc(Mul);break;case 4:Calc(Div);break;case 0:printf("退出计算器\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

在这里插入图片描述

🥰可能有那么一点点复杂,希望烙铁们能够理解‼️🥰

总结🥰
以上就是 指针的进阶【下篇】 内容啦🥳🥳🥳🥳
本文章所在【C语言知识篇】专栏,感兴趣的烙铁可以订阅本专栏哦🥳🥳🥳
希望我们可以做一个用心的人💕💕💕
小的会继续学习,继续努力带来更好的作品😊😊😊
创作写文不易,还多请各位大佬uu们多多支持哦🥰🥰🥰

请添加图片描述

http://www.yayakq.cn/news/667006/

相关文章:

  • app网站建站系统南海桂城城乡建设局官方网站
  • 网站运营经理岗位要求移植wordpress数据库
  • wordpress 文档导入数据库南京做网站优化多少钱
  • 网站建设找实体还是淘宝51网站怎么打不开了
  • 个人网站建设规划书网站设计创新点怎么写
  • 网站赚钱的方式如何判断网站seo做的好坏
  • 南昌网站定制开发公司wordpress主题 mnews
  • 工作室装修网站源码软装设计图 效果图
  • wordpress 添加幻灯片天津百度优化公司
  • 公司网站建设找哪家北京互联网营销
  • dedecms 子网站大庆公司做网站
  • 网站建设搭建微商导航网站学网站建设好吗
  • 网上自己建网站手机wordpress清除缓存
  • 红岗网站建设seo兼职网
  • 网站设计趋势无线昆明官方网站
  • 电商网站建设方案PPT上海网页制作步骤
  • 泉州哪家网站建设公司好网络营销最成功的企业
  • 首页标题在哪里打开无锡优化网站公司
  • 企业网站维护报价企业网站开发文档
  • logo免费设计网站有哪些苏州网站设计制作
  • 用阿里云服务器做盗版小说网站吗房地产开发公司网站建设方案
  • 公司个人怎么制作网站有项目没有钱怎么找投资人
  • 博客网站注册阿里云 上传wordpress
  • 可以做护考题目的网站网站开发侵权
  • 网站每天一条推送怎么做的电子商务和网络营销的区别
  • 一般网站的服务器外贸出口网
  • 免费网站源码建站系统海口网站制作公司
  • 洛阳制作网站的公司优惠活动制作网站
  • 专业网站设计第三方服务小程序退款商家不给退咋办
  • 女装网站建设查询网站备案服务商