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

查网站是否正规python基础教程电子版书籍

查网站是否正规,python基础教程电子版书籍,网站地图写法,wordpress自定义页面没反应文章目录 #x1f680;前言#x1f680;两段有趣的代码✈️typedef关键字 #x1f680;指针数组#x1f680;简易计算器的实现 #x1f680;前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解#xff0c;那么今天阿辉将为大家介绍C语言的指针剩下的部分#… 文章目录 前言两段有趣的代码✈️typedef关键字 指针数组简易计算器的实现 前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解那么今天阿辉将为大家介绍C语言的指针剩下的部分包括指针数组以及利用函数指针来实现简易计算器及typedef关键字关注阿辉不迷路哦 内容干货满满接下来就跟着阿辉一起学习吧 两段有趣的代码 以下两段代码出自于《C陷阱和缺陷》这本书这两段代码有一定的难度需要有一定的指针基础否则可能看不懂看不懂的可以翻看阿辉前两篇关于指针的博客。 代码1 ( *( void ( * )())0 )()这段代码确实变态铁子们别急让我们分析一下 1.首先代码( *( void ( * )())0 )()右边单独的括号()很明显它是函数调用操作符说明( *( void ( * )())0 )这一大坨代表一个函数名 2.然后void ( * )()这一坨铁子们这玩意不就是函数指针类型嘛被指向函数返回类型是void没有参数 void ( * )()这玩意外面套个括号不就是(类型)强制类型转换嘛 那这不就简单了不就是把数字0强制转化成一个函数指针然后解引用调用该函数 代码2 void (*signal(int , void(*)(int)))(int);void (*signal(int , void(*)(int)))(int)这一坨我们咋一看很懵不过我要是把这个signal(int , void(*)(int))拎出来铁子们肯定熟这玩意怎么这么像函数声明铁子们大胆点你们看看void (*)(int)这一部分不就是函数指针类型吗这俩一结合不就是函数声明嘛 signal是函数名它的两个参数类一个是int一个是返回值为void参数为int的函数指针类型然后signal的返回类型也是一个返回值为void参数为int的函数指针类型 这里你可能会想这段码难写可读性还差其实有解决方法铁子们咱继续 ✈️typedef关键字 通过typedef可以为已有的数据类型定义一个新的名字使得代码更易读、更易维护 语法格式为 typedef 类型名 新类型名例子 typedef unsigned int size_t;size_t a;对于size_t创建的变量a其实就是unsigned int类型的对于指针类型新类型名必须在*右边 例子 typedef int(*parr_t)[5];typedef void(*pfun_t)(int);void (*signal(int , void(*)(int)))(int);对于上面这段函数我们就可以这么写了pfun_t signal(int , pfun_t);可读性直接提升一大截指针数组 铁子们都知道数组是自定义类型前面咱们学了指针的一系列类型这不咱们数组又添一个大家族——指针数组指针数组顾名思义是存放指针的数组 指针数组的创建 type* name[const]; name是数组名 const是常量给定数组大小 type*是数组的类型注意 这里要与数组指针区分开由于[]的优先级高于*所以type* name[const]中name与[]先结合表明name是指针而数组指针type (*name)[const]中(*name)确保*与name先结合表明name是指针 举个栗子 int* a1[10];//存放整型指针的指针数组 char* a2[10];//存放字符指针的指针数组 int(*a3[10])[5];//存放数组指针的数组指针数组 int(*a4[10])(int);//存放函数指针的函数指针数组指针数组有什么用呢铁子们不要急我们接着看 简易计算器的实现 利用switch来实现简易计算器 简易计算器的实现思路 内置加减乘除四种运算打印菜单供用户选择运算方式以及退出计算器输入待计算的数字输出计算结果 #include stdio.h void menu() {打印菜单printf(*************************\n);printf(**** 1:add 2:sub ***\n);printf(**** 3:mul 4:div ***\n);printf(**** 0:exit .... ***\n);printf(*************************\n); } int add(int a, int b)//加法 {return a b; }int sub(int a, int b)//减法 {return a - b; }int mul(int a, int b)//乘法 {return a * b; }int div(int a, int b)//除法 {return a / b; }int main() {int x, y;int input 1;int ret 0;do{menu();printf(请选择);scanf(%d, input);switch (input)//选择{case 1:printf(输入两个操作数);scanf(%d %d, x, y);ret add(x, y);printf(ret %d\n, ret);break;case 2:printf(输入两个操作数);scanf(%d %d, x, y);ret sub(x, y);printf(ret %d\n, ret);break;case 3:printf(输入两个操作数);scanf(%d %d, x, y);ret mul(x, y);printf(ret %d\n, ret);break;case 4:printf(输入两个操作数);scanf(%d %d, x, y);ret div(x, y);printf(ret %d\n, ret);break;case 0:printf(退出程序\n);break;default:printf(选择错误请重新选择\n);break;}} while (input);return 0; }上面的这段利用switch实现的代码有大量重复的元素导致代码极为臃肿而且对于后期代码的维护也是极为不便这里我们观察发现add,sub,mul,div这四个函数有着同样的参数以及返回类型这有什么用呢铁子们我们接着看 我们完全可以创建一个函数指针数组来存放他们 int (*a[])(int,int) {add,sub,mul,div};有了这个函数指针数组我们只需要输入下标便可以通过a[input](x,y)来调用函数但是下标并没有与菜单对应起来很简单仅需要在数组里面添一个NULL就行int (*a[])(int,int) {NULL,add,sub,mul,div} 然后一堆的switch case语句简化成 if (input 0){printf(退出计算器\n);}else if (input 1 input 4){ printf(请输入两个操作数:);scanf(%d %d, x, y);ret pfArr[input](x, y); printf(%d\n, ret);}else{printf(选择错误重新选择\n);}不得不说设计C语言的人真的是厉害后面如果要添加其他运算仅仅只用添函数改一下菜单以及把数组名加到数组里面就行了绝真的绝 到这里阿辉今天对于C语言中指针部分的分享就结束了希望这篇博客能让大家有所收获, 如果觉得阿辉写得不错的话记得给个赞呗你们的支持是我创作的最大动力
http://www.hkea.cn/news/14505993/

相关文章:

  • 川畅科技联系 网站设计产品创新设计案例
  • 网站群建设系统网站建设网站建设 网站制作
  • 做网站前台需要什么软件信息免费建站网站有哪些
  • 潮州移动网站建设wordpress jekyll 选择
  • 在线室内设计网站做电影网站需要的服务器配置
  • 徐州网站建设培训wordpress文章长
  • 医院网站建设具体内容湖南网站推广建设公司
  • 网站域名注册证明北京门户网站开发
  • 织梦cms网站更新滨海做网站价格
  • 什么搜索引擎搜索最全seo服务外包公司
  • 比价网站开发北京中高风险地区最新名单最新
  • 建设部网站城市规划资质标准做网站超链接用什么软件
  • 构建网站系统小程序招商加盟平台
  • 网站营销型wordpress主题安装空白
  • 排名好的大连网站建设企业型网站开发
  • 网站建设招标评分标准免费网页设计教程视频教程
  • 深信服对单一网站做限速360浏览器怎么加入可信站点
  • 网站后台管理系统进度做网站 注意
  • 手机网站建设经验wordpress文件缺失
  • 长沙市天心区建设局网站优速网站建设
  • 网站建设公司 北京iis7如何部署网站
  • 站酷设计网站官网入口免费酒店管理专业建设规划
  • 公益网站的设计与建设网站开发实训结果分析及其心得体会
  • 城乡厅建设部网站首页电子商城官网
  • 丹徒区建设局网站flash做游戏下载网站
  • 购物网站模块是什么意思电影介绍网页设计代码
  • 视频播放网站建设免费招商加盟代理
  • 网站的建设有什么好处巢湖市重点工程建设管理局网站
  • 移动端优秀网站wordpress不能重置密码
  • 椒江网站建设可以做网站的软件上传歌曲