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

广西美丽乡村建设网站泰州高端网站建设

广西美丽乡村建设网站,泰州高端网站建设,logo在线生成器免费,做网站会有侵权近期的天气是真的冷啊#xff0c;老铁们一定要照顾好自己呀#xff0c;注意防寒保暖#xff0c;没有你们我怎么活啊#xff01; 上次的指针2的末尾#xff0c;给大家分享了两个有趣的代码#xff0c;今天就先来讲一讲那两个代码#xff1a; 两个有趣的代码#xff1a;…近期的天气是真的冷啊老铁们一定要照顾好自己呀注意防寒保暖没有你们我怎么活啊 上次的指针2的末尾给大家分享了两个有趣的代码今天就先来讲一讲那两个代码 两个有趣的代码 1  ( *  (   void  (*)    (  )   )   0 ) ( );  相同颜色的就是对应的一对括号我们从里面看着出来void  (*)  (  )这是一种指针类型吧然后就是(   void  (*)    (  )   )   0  表示将0地址强制转换为函数指针类型像我们之前写的int3.14这中就是强制类型转换之后还剩下*这个不就是函数的调用吗?所以这是一次函数调用将整数值0强制类型转换成一个函数地址这个函数没有参数返回类型为void; 去调用0地址处的函数. 2 void (*signal (int , void(*)(int) ) ) (int ); 我们还是从里面分析着出来首先看 signal (int , void(*)(int) )这不就是一个函数吗里面有两个参数第一个是int类型第二个是函数指针类型该指针指向的函数参数是int返回类型是voidsignal函数的返回类型是这种类型的void(*)(int)函数指针该指针指向的函数参数是int返回类型是void这是函数的声明 函数指针数组 函数指针数组是一个数组其元素都是指向函数的指针。它的定义形式如下 返回类型 (*指针数组名称[元素个数])(参数1类型, 参数2类型, ...); 其中返回类型是函数的返回类型指针数组名称是一个合法的标识符元素个数是指针数组中元素的个数。参数类型是函数的参数类型。 例如定义一个包含3个元素的函数指针数组每个元素都指向返回类型为int参数类型为int的函数可以如下定义int (* PArray[3] )  (int); PArray先和 [] 结合说明 PArray是数组数组的内容是 int (*)(int) 类型的函数指针。 这样PArray就是一个包含3个元素的函数指针数组每个元素都是指向返回类型为int参数类型为int的函数的指针。 函数指针数组的使用 我们编写计算器的实现 先看看第一种方法 #define _CRT_SECURE_NO_WARNINGS 1 #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 mune(void) {printf(************************\n);printf(*****1,加法运算 ********\n);printf(*****2,减法运算 ********\n);printf(*****3,乘法运算 ********\n);printf(*****4,除法运算 ********\n);printf(*****0,退出计算 ********\n);printf(************************\n);} int main() {int input 0;int x 0;int y 0;int ret 0;do{mune();printf(请选择:\n);scanf(%d, input);switch (input){case 1:printf(请输入两个操作数:\n);scanf(%d %d, x, y);ret Add(x, y);printf(%d\n, ret);break;case 2:printf(请输入两个操作数:\n);scanf(%d %d, x, y);ret Sub(x, y);printf(%d\n, ret);break;case 3:printf(请输入两个操作数:\n);scanf(%d %d, x, y);ret Mul(x, y);printf(%d\n, ret);break;case 4:printf(请输入两个操作数:\n);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; } 这种方法相信大家都会的吧就是我们前面知识的应用就不和大家细说了。上面我们看见重复的代码太多了而且我们以后想实现其他的运算就会变得很麻烦。 上述的方法我们可不可以把它们进行封装到另一个函数里面呢通过函数指针找到相应的函数 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.hint input 0; int x 0; int y 0; int ret 0;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 mune(void) {printf(************************\n);printf(*****1,加法运算 ********\n);printf(*****2,减法运算 ********\n);printf(*****3,乘法运算 ********\n);printf(*****4,除法运算 ********\n);printf(*****0,退出计算 ********\n);printf(************************\n);}void calc( int(*pf)(int, int))//函数指针 {printf(请输入两个操作数:\n);scanf(%d %d, x, y);ret pf(x, y);printf(%d\n, ret); } int main() {do{mune();printf(请选择:\n);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; } 我们来看看运行效果 我们可不可以把这些函数放在一个数组里面呢因为这些函数都是这一大类的吧弄一个函数指针数组然后根据输入去调用相应的函数 int (*parr[5]) (int, int) { NULL,Add,Sub,Mul,Div }; 前面加上一个空指针这样我们在输入数字的时候就可以找到相应的函数数组的下标是从0开始的 int main() {int input 0;int x 0;int y 0;int ret 0;do{mune();printf(请选择:\n);scanf(%d, input);int (*parr[5]) (int, int) { NULL,Add,Sub,Mul,Div };//这里的函数指针数组我们称为转移表if (input 0){printf(退出计算器\n);}else if(input1 input4){printf(请输入两个操作数:\n);scanf(%d %d, x, y);ret parr[input](x, y);printf(%d\n, ret);}else{printf(输入错误请重新输入\n);}} while (input);return 0; } 这样我们是不是就大大减少了我们的代码量了而且如果想加上其他的方法加在数组里面就可以了但这只是其中一部分代码哈前面的方法我没有写上。 好了今天就到这里了明天见哦不要太想我哟
http://www.yutouwan.com/news/416214/

相关文章:

  • 科技服务 网站建设app 小程序wordpress整合ck播放器
  • 北京网站制作公司排名我想学制作网站吗
  • 外包 网站开发公司在茂名哪里可以做网站
  • 河南新乡做网站公司网站建设需要的资质
  • 唐山市住房和城乡建设局网站小程序怎么开发自己的微信小程序
  • 昆明建站公司推荐高端网页设计模板
  • 网站开发 团队协作wordpress主题 制作教程
  • 专做公司网站 大庆商务网站开发课程体会
  • 十堰门户网站建设装修合同电子版
  • 网站制作公司北京华网软文范例100字以内
  • 做货代的有哪些网站推荐一些做电子的网站
  • 佳木斯做网站的公司大学网站建设招标
  • 个人资料展示网站做ppt模板网站
  • 电商网站图片是谁做pc端网站模型建设工具
  • 网站建设合同模板91075搭建网站 软件下载
  • 一起做网站逛市场图书馆网站建设情况汇报
  • 网站推广的岗位要求莱州教体局网站
  • 网站说服力 营销型网站策划深圳网站公司有哪些
  • 青岛哪家做网站的公司好产品推广软文
  • 网站怎么使用模板网站开发公司外包
  • 重庆网站建设 渝html5中国网站欣赏
  • 连接外国的网站吗电脑做网站服务器WIN7 买个域名
  • 南通企业自助建站系统ui设计师创意平台
  • 做网站域名起什么作用房屋装修效果图app有哪些
  • ps图做ppt模板下载网站有哪些做网站i3够用吗
  • 广州萝岗网站建设站长工具seo综合查询权重
  • 无锡自助做网站网站收录没排名
  • 玉溪市网站建设推广郑州知名网站建设服务公司
  • 微营销网站建设wordpress添加主题不显示
  • 做网站需要什么手续资料网站关键词突然没有排名了