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

做交互式的网站怎么做晋城做网站公司

做交互式的网站怎么做,晋城做网站公司,最具有口碑的网站建设,大连建网站策划文章目录 1.字符指针变量常见的字符指针初始化另一种字符指针初始化例#xff1a; 2.数组指针变量什么是数组指针变量数组指针变量创建数组指针变量初始化例#xff08;二维数组传参的本质#xff09; 3.函数指针变量什么是函数指针变量呢#xff1f;函数指针变量创建函数指… 文章目录 1.字符指针变量常见的字符指针初始化另一种字符指针初始化例 2.数组指针变量什么是数组指针变量数组指针变量创建数组指针变量初始化例二维数组传参的本质 3.函数指针变量什么是函数指针变量呢函数指针变量创建函数指针使用typedef关键字 4.函数指针数组概念创建通过函数指针数组实现计算器 1.字符指针变量 常见的字符指针初始化 字符指针 char * 常见的初始化 int main() {char a w;char* p a;return 0; }跟 int *类型的初始化一样下面介绍另一种字符指针的初始化 另一种字符指针初始化 这种是将一个字符串直接赋给字符指针变量 如 char* p abcdefg;%s传char*类型参数, 输出到\0为止也就说传字符串的首地址即可 那么它能不能像一般的字符数组那样直接打印出来呢我们通过代码看看 int main() {char a[] abcdefg;char* p abcdefg;printf(%s, a);//打印字符数组printf(%s, *p);//打印指针初始化出来的字符串return 0; }运行结果 由结果看出只有字符数组arr代表的是字符数组的首地址打印出来了而字符指针没打印出来这是为什么呢 其实是因为这样初始化只是把字符串的首个字符的地址传给字符指针变量 p 这样的话 *pa。 在这里%s是打印字符串的所以打印不了一个字符。 那我们用打印一个字符的 %c 和直接用指针变量 p 字符串的首个字符的地址试试 int main() {char a[] abcdefg;char* p abcdefg;printf(a%s\n, a);printf(*p%c\n, *p);printf(p%s\n, p);return 0; }运行结果 字符指针只打印一个首字符验证了首个字符的地址传给字符指针变量 p 我们也可以用循环的方式一个字符一个字符访问将这个字符串打印出来 int main() {char* p abcdefg;int s strlen(p);//求字符长度 for(int i0;is;i)printf(%c, *(pi));//将字符一一打印出来return 0; }运行结果 例 这是《剑指offer》中⼀道和字符串相关的笔试题问最后输出的结果是什么 代码 #include stdio.h int main() {char str1[] hello bit.;char str2[] hello bit.;const char *str3 hello bit.;const char *str4 hello bit.;if(str1 str2)printf(str1 and str2 are same\n);elseprintf(str1 and str2 are not same\n);if(str3 str4)printf(str3 and str4 are same\n);elseprintf(str3 and str4 are not same\n);return 0;}答案 分析 1.这道题其实就是比较首地址 2这⾥str3和str4指向的是⼀个同⼀个常量字符串。C/C会把常量字符串存储到单独的⼀个内存区域当⼏个指针指向同⼀个字符串的时候他们实际会指向同⼀块内存。但是⽤相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。所以str1和str2不同str3和str4相同。 2.数组指针变量 数组指针是指针不是数组 什么是数组指针变量 我们通过其他类型的指针进行类比一下 整形指针变量 int * pint; 存放的是整形变量的地址能够指向整形数据的指针。 浮点型指针变量 float * pf; 存放浮点型变量的地址能够指向浮点型数据的指针。 那么数组指针变量就是存放数组地址指向数组的指针变量吧 数组指针变量创建 创建int (*p)[10] 解释p先和*结合说明p是⼀个指针变量变量然后指着指向的是⼀个⼤⼩为10个整型的数组。所以p是⼀个指针指向⼀个数组叫数组指针。 注意[ ]的优先级要⾼于 * 号的所以必须加上来保证p先和 * 结合。 数组指针变量初始化 数组指针是用来存放数组的指针的那么我们将数组取地址在赋给数组指针变量即可 如 int arr[10] { 1,2,3,4,5,7,8,9,0.6 }; int(*p)[10] arr;解释 图解一维数组 例二维数组传参的本质 在数组里面的二维数组可以看成一个一维数组只不过是每个元素就是一个数组而已所以根据数组名是数组⾸元素的地址这个规则⼆维数组的数组名表⽰的就是第⼀⾏的地址是⼀维数组的地址。 1.通过二维数组接收参数 这是一般的方法 void qin(int arr[2][5] ){for (int i 0; i 2; i) {for (int j 0; j 5; j)printf(%d , arr[i][j]);}printf(\n); } int main() {int arr[2][5] { 1,2,3,4,5,6,7,8,9,0 };qin(arr);return 0; }2.通过数组指针来了解二维数组的本质 void qin(int(*p)[5]) {//*(p1)arr[0]jfor (int i 0; i 2; i) {for (int j 0; j 5; j)printf(%d , (*(p i))[j]);// //*p*pi,当i 加1时相当于跳过二维数组中的一个一维数组//当然跟据前面的知识也可以写成这样 *(*(pi)j) }printf(\n); } int main() {int arr[2][5] { 1,2,3,4,5,6,7,8,9,0 };qin(arr);//在前面指针内容里说过数组名就是首元素的地址//那么我们这里把二维数组当成一维数组那么首元素不就是一整个一维数组的地址吗return 0; }图解 总结⼆维数组传参形参的部分可以写成数组也可以写成指针形式。 3.函数指针变量 什么是函数指针变量呢 数组指针是用来存数组的地址的那么函数指针呢 其实函数指针也是用来存地址的存的是函数的地址这里就有很多人有疑问了函数有地址 那么我们来做个测试 int add(int x, int y) {return x y; } int main() {printf(%p, add);return 0; }运行结果 很明显函数是有地址的 这里还有一个注意的是函数名和函数名都是代表函数的地址如addadd 我们来测试一下吧 int add(int x, int y) {return x y; } int main() {printf(add%p\n, add);printf(add%p, add);return 0; }运行结果 耶是一样的 函数指针变量创建 创建int (*p) (int, int) 函数指针使用 我们用函数指针来实现一下加法 int add(int x, int y) {return x y; } int main() {int (*p)(int, int) add;int a 3, b 9;printf(%d\n, p(a, b));//这里不用 * 也可以因为函数调用的时候本身就是用地址去调用printf(%d\n, (*p)(a, b));return 0; }运行结果 typedef关键字 typedef 是⽤来类型重命名的可以将复杂的类型简单化。 如 typedef unsigned int uint; //将unsigned int 重命名为uint那么如何来重命名指针类型呢 typedef int(*)(int ,int) te //错误 typedef int(*te)(int, int) //正确命名将重命名放到原来放函数指针名称的位置 typedef (*te)[10]//数组指针重命名4.函数指针数组 概念 把函数的地址存到⼀个数组中那这个数组就叫函数指针数组就是将函数指针放到一个数组里 创建 int (*) (intint)//函数指针类型 int (*p[10])(int ,int)//函数指针数组--p先和[]结合形成数组再和函数指针类型结合形成函数指针数组通过函数指针数组实现计算器 我们这里要实现一个简单的计算器分别有加法、减法、乘法、除法那么我们就要实现四个函数来实现然后还要一个选择来选择实行什么计算最后还需要一个菜单就完成了 我们先用一般的方法来实现计算器: #include stdio.h 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//菜单{printf(*************************\n);printf( 1:add 2:sub \n);printf( 3:mul 4:div \n);printf( 0:exit \n);printf(*************************\n);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; }使⽤函数指针数组的实现 我们将这4个函数都放到一个函数指针数组里当我们需要实行什么计算就通过什么下标来访问这个函数 #include stdio.h 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;int(*p[5])(int x, int y) { 0, add, sub, mul, div }; //储存函数地址这里的0也算一个地址我们这样是方便选择do{printf(*************************\n);printf( 1:add 2:sub \n);printf( 3:mul 4:div \n);printf( 0:exit \n);printf(*************************\n);printf( 请选择 );scanf(%d, input);//输入下标if ((input 4 input 1)){printf( 输⼊操作数 );scanf( %d %d, x, y);ret (*p[input])(x, y);printf( ret %d\n, ret);}else if(input 0){printf(退出计算器\n);}else{printf( 输⼊有误\n ); }以上就是我的分享 谢谢大家的观看
http://www.zqtcl.cn/news/744391/

相关文章:

  • 网站建站作业做直播网站赚钱
  • 网站建设虍金手指花总简单免费制作手机网站
  • 京东网站是刘强冬自己做的吗献县网站建设价格
  • 余姚什么网站做装修比较好邢台企业做网站哪儿好
  • 网站建设后端国外购物平台排行榜前十名
  • 西安做百度推广网站 怎样备案简述商务网站建设
  • 如何建设本地网站东莞常平限电通知2021
  • 成都网站建设cdajcx重庆推广网站排名价格
  • 建网站的价格网店设计方案计划书
  • 长沙做公司网站如何制作个人网站教程
  • 做一个网站怎么做的仿qq网站程序
  • 曲靖市建设局网站官网织梦可以放两个网站
  • 网站建设方案ppt模板网站怎么做用户登录数据库
  • 做3d图的网站有哪些软件有哪些专业设计企业网站
  • 青海省wap网站建设公司做美工比较好的网站
  • 1个云虚拟主机怎么做多个网站网站规划与建设实验心得
  • led视频网站建设公众号代运营平台
  • 北京微信网站开发费用软件开发做平台
  • 平面设计师必备网站精湛的赣州网站建设
  • 上海市住房和城乡建设部网站官网wordpress页面点赞
  • 试玩平台类网站怎么做的东莞网站关键词推广
  • 网站开发慕枫页面模板怎么删除
  • 网站开发微信小程序需求量大吗珠海新闻头条最新消息
  • 闭站保护对网站影响公司主网站百度收录大量网站之类的信息
  • 在阿里云上建立网站的步骤在360网站做公告怎么弄
  • wordpress给公司建站安徽省干部建设教育网站
  • 做的网站需要买什么系统服务器找第三方做网站 需要注意
  • 网页设计模板网站推荐互联网创业项目网
  • 北京做网站的大公司动态列线图怎么制作网页
  • 江西省城乡和住房建设部网站google play应用商店