久久建筑有限公司如何通过名校长工作室网站的建设提升品牌形象?

摘要:名校长工作室网站建设,久久建筑有限公司,哪些网站做的好处,网站仿制可用于商业吗大家好,我是苏貝,本篇博客带大家了解指针(2),如果你觉得我写的还不错的
名校长工作室网站建设,久久建筑有限公司,哪些网站做的好处,网站仿制可用于商业吗大家好#xff0c;我是苏貝#xff0c;本篇博客带大家了解指针(2)#xff0c;如果你觉得我写的还不错的话#xff0c;可以给我一个赞#x1f44d;吗#xff0c;感谢❤️ 目录 一.函数指针数组二.指向函数指针数组的指针#xff08;不重要#xff09;三.回调函数 一.函… 大家好我是苏貝本篇博客带大家了解指针(2)如果你觉得我写的还不错的话可以给我一个赞吗感谢❤️ 目录 一.函数指针数组二.指向函数指针数组的指针不重要三.回调函数 一.函数指针数组 字符数组–数组–存放字符的数组 整型数组–数组–存放整型的数组 指针数组–数组–存放指针的数组 函数指针数组–数组–存放函数指针的数组即存放函数的地址 int (* parr1[10])(); parr1 先和 [ ] 结合说明 parr1是数组数组的元素类型是什么呢将数组名和数组名后面的[ ] 去掉得到int (* )()即函数指针所以数组的元素类型是函数指针 函数指针数组的用途转移表 例子计算器实现 - * / 4个功能 #includestdio.hvoid 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(%d\n, ret);break;case 2:printf(请输入2个数);scanf(%d %d, x, y);ret Sub(x, y);printf(%d\n, ret);break;case 3:printf(请输入2个数);scanf(%d %d, x, y);ret Mul(x, y);printf(%d\n, ret);break;case 4:printf(请输入2个数);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; }但是写完这些代码后我们发现这些代码有许多重复的地方所以我们是否可以简化一下呢 简化上面的代码我们发现Add,Sub,Mul,Div的参数类型和个数相同返回类型也相同所以可以使用函数指针数组让Add,Sub,Mul,Div成为该数组的元素用数组的元素调用Add,Sub,Mul,Div函数 int(*pfArr [ ])(int, int) { Add,Sub,Mul,Div }; 所以它们的下标分别为0123但由于菜单上1234才代表它们所以我们不妨在Add前加NULL这样它们的下标就为1234了 int(*pfArr[])(int, int) { NULL,Add,Sub,Mul,Div }; 总代码 #includestdio.hvoid 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
阅读全文