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

网站模板免费下载php个人网站可以做导购吗

网站模板免费下载php,个人网站可以做导购吗,手机开发框架,手机网站建设一般要多少钱大家好#xff0c;我们今天继续来分享指针进阶的内容。 目录 5.函数指针 6.函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 5.函数指针 顾名思义函数指针里面存的就是函数的地址了。 那我们通过一段代码来理解函数指针#xff1a; #includestdio.h int Add…大家好我们今天继续来分享指针进阶的内容。 目录 5.函数指针 6.函数指针数组 7. 指向函数指针数组的指针 8. 回调函数 5.函数指针 顾名思义函数指针里面存的就是函数的地址了。 那我们通过一段代码来理解函数指针 #includestdio.h int Add(int x, int y) {return x y; } //函数名 - 拿到的就是函数的地址 //函数名 - 也是函数的地址 int main() {printf(%p\n, Add);printf(%p\n, Add);//int (* pf)(int, int) Add;//pf就是一个函数指针变量的int (* pf)(int, int) Add;int ret pf(3, 5);int ret2 Add(3, 5);printf(%d\n, ret);printf(%d\n, ret2);//int arr[10];//int (*pa)[10] arr;//pa就是数组指针变量return 0; }我们看到函数指针*pf因为我们定义的函数传参传的是整形的变量所以我们传递的参数类型也是int型的又因为我们定义的函数也是int类型的所以我们的指针 *p返回的类型也是int型那么我们对于函数Add取地址和对函数名取地址和发现两个地址相同那就说明函数名和函数名都是函数的地址所以我们最后用函数指针变量还是调用函数都可以打印出ret和ret2且二者值相同。 相信大家对于函数指针有了深刻的理解。 6.函数指针数组 函数指针数组是存放函数指针的数组。 话不多说直接看代码—: int Add(int x, int y) {return x y; }int Sub(int x, int y) {return x - y; }int main() {int (*pf1)(int, int) Add;int (*pf2)(int, int) Sub;//数组中存放类型相同的多个元素int (* pfArr[4])(int, int) {Add, Sub};//pfArr 是函数指针数组 - 存放函数指针的数组return 0; }在这里我们定义了两个函数分别对他们取地址并存入到一个数组中这个数组我们就叫做函数指针数组我们将函数指针和函数指针数组进行比较发现我们的函数指针数组比函数指针多了[ ]且里面定义了这个数组的大小所以我们要设置一个函数指针数组的时候就可以多想想函数指针就可以很快的写出函数指针数组了。 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针地址作为参数传递给另一个 函数当这个指针被用来调用其所指向的函数时我们就说这是回调函数。回调函数不是由该函数 的实现方直接调用而是在特定的事件或条件发生时由另外的一方调用的用于对该事件或条件进 行响应。 在这里我们将会用很简单的例子来让大家更加的理解所谓的回调函数。 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 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 input 0;int x 0;int y 0;int ret 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:printf(请输入2个操作数:);scanf(%d %d, x, y);ret Add(x, y);printf(ret %d\n, ret);break;case 2:printf(请输入2个操作数:);scanf(%d %d, x, y);ret Sub(x, y);printf(ret %d\n, ret);break;case 3:printf(请输入2个操作数:);scanf(%d %d, x, y);ret Mul(x, y);printf(ret %d\n, ret);break;case 4:printf(请输入2个操作数:);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; }这里我们通过一个小程序来向大家讲述我们这里定义了一个菜单来进行加减乘除运算便于我们进行加减乘除运算。 1.首先我们打开程序 2.输入我们想要进行运算所代表的数字我们代码块中通过swith来对这个加以控制1代表加法运算2代表减法运算3代表乘法运算4代表除法运算0则是退出程序。我们就以加法运算为例输入1。 3.接着我们就得输入两个操作数输入后我们的case1分支语句就会调用Add函数将这两个操作数传给函数函数内通过运算返回两个数之后在打印出来。我们以输入1和2为例。 4.我们结束一个运算过程之后紧接着就会让你进行下一个你想要的运算除非输入0否则这个程序永远都不会结束。 我们看到输入1就退出程序了就结束程序了。那么问题来了如果我们要进行很多操作数的运算是不是就得一直进行程序运算呢那么这样的过程是不是就会显得太冗杂了呢为了提高操作的效率那么就到了我们要讲的主体回调函数了。 我们对代码进行修改 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 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 calc(int (*pf)(int,int)) {int x 0;int y 0;int ret 0;printf(请输入2个操作数:);scanf(%d %d, x, y);ret pf(x, y);printf(ret %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;我们这里用了一个函数calc分装起来通过将函数加减乘除的地址传给函数calc在calc函数中输入的操作数将会传到我们要进行操作的函数中通过操作后将结果返回到calc函数中在进行打印。所以我们这里的函数calc相当于一个中转站。所以我们想要进行什么运算就只要输入相应函数对应的数字就可以了。 我们在这里通过图片就可以很清楚的看到整个程序进行的过程。 通过今天的分享相信大家应该对指针进阶内容有了更加深刻的认识今天的分享就到这里谢谢大家。
http://www.ho-use.cn/article/10819960.html

相关文章:

  • 杭州互助盘网站开发深圳市宝安区石岩街道
  • 临沂做商城网站建设成品影视app下载有哪些软件
  • 青岛快速建站模板wordpress live2d插件
  • 黄村做网站的公司烟台网站制作步骤
  • 郑州 高端网站建设网站忘记备案
  • 制作网站的公司做网站去哪里找做专业课视频课的网站
  • 莱芜正规的企业建站公司腾讯企业邮箱版
  • 东莞网站搜索排名apache fastcgi wordpress
  • 此网站服务器不在国内维护怎么通过微博做网站外链
  • 雄安微网站开发网站建设公司转型做什
  • 网站运营与建设作业设计方案ppt模板
  • 电商类网站模板下载个人wordpress 手机
  • 什么是网站流量优化vs和sql做购物网站
  • 做网站用什么主机好制作网页常见的布局方法有
  • 网站设计深圳要联系方式吗?惠安网站建设价格
  • 网络规划设计师多少分通过seo公司发展前景
  • 哪个网站可以做社工试题做网站有2个前提条件 一个是网站
  • 在百度云上做网站建设部网站从哪登陆
  • 推广网站的文案海南在线直播
  • 网站建设預算google官网入口
  • 南充北京网站建设深圳大型互联网公司
  • 济南市住建局官方网站网址安全检测中心
  • 舵落口网站建设wordpress动态行情页面
  • 做网站需要租服务器吗wordpress主题如何使用
  • 源码分享网站网站制作结算确认函
  • 自己做的网站验证码出不来怎么回事素材网站怎么推广
  • 怎么样搭建qq号网站做网站没有高清图片怎么办
  • 展示型网站解决方案福建网站建设费用
  • 美食烹饪网站策划书做简历的网站叫什么软件
  • 个人做的小网站需要备案公司网站建设的意义方案