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

设计企业网站流程搜索引擎关键词seo优化公司

设计企业网站流程,搜索引擎关键词seo优化公司,温州关键词优化工具,塘厦 网站建设 百度推广前言 指针变量的解引用和加法运算是非常高频的考点#xff0c;也是难点#xff0c;因为对初学者的不友好#xff0c;这就导致了各大考试都很喜欢在这里出题#xff0c;通常会伴随着强制类型转换、二维数组、数组指针等一起考查大家对指针的理解。但是不要怕#xff0c;也许…前言 指针变量的解引用和加法运算是非常高频的考点也是难点因为对初学者的不友好这就导致了各大考试都很喜欢在这里出题通常会伴随着强制类型转换、二维数组、数组指针等一起考查大家对指针的理解。但是不要怕也许看完这篇文章你有了新的认识和理解写的不透彻的地方也希望大家多多指正 理解指针变量的解引用 我们分下面两步理解 解引用拿出来的是什么解引用根据什么拿出来的 1. 拿出来的是什么 首先解引用拿出来的就是指针指向的内容比如指针p指向的是这个地址*p就是拿出来地址里面的内容 2. 根据什么拿出来的 指针的类型决定了对指针解引用的时候有多大的权限能拿出几个字节。 比如 char* 的指针解引用就只能访问1字节 #include stdio.h int main() {int a 40000;int *p a;printf(%d\n, *(char*)p);return 0; } 本应该是40000的值咋变成64了这其实就跟解引用的指针类型有关了但是这里还涉及了一个知识点是大小端上面是小端的结果小端就是低位在低地址高位在高地址大端反之所以会有不同的结果因为解引用是从低地址开始的大端结果就应该是0 int* 的指针的解引用就能访问4字节 #include stdio.h int main() {int a 40000;int *p a;printf(%d\n, *p);return 0; } 所以这里就是直接解引用了4个字节只要是涉及多个字节了取出来的要按照低位还是低位来算切记不能以为先取出来的就是高位 理解指针变量的加法 我们来分这两步理解 指针变量的加法加的是什么指针变量的加法是根据什么来加的 1. 加的是什么 我们首先来分析指针变量是什么指针变量是一个地址那指针变量的加法实际上就是对这个指针变量代表的地址做加法也就是向后移动指针变量指向的位置让指向的地址更高。 2. 根据什么来加 指针变量的加法是根据指针变量的数据类型实现的 指针 n 指针 n*指针类型中的除*的类型所占字节 char*就是n int*就是4n 比如char*类型 char c 0; char *pc c; printf(pc %p\n, pc); printf(pc 1 %p\n, pc 1); 我们可以看到pc1的值是向后移动了1个字节 比如int*类型 int i 0; int *pi i; printf( pi %p\n, pi); printf(pi1 %p\n, pi 1); 此时int类型的pi1的值是向后移动了4个字节 比如double*类型 double d 0; double *pd d; printf( pd %p\n, pd); printf(pd1 %p\n, pd 1); 此时double类型的pd1的值是向后移动了8个字节 例题 1. 普通的加法 #include stdio.h int main() {int arr[5] {1, 2, 3, 4, 5};int *p arr;printf(%d\n, *(p 1));printf(%d\n, p[1]);return 0; } 答案及解析2 2 首先p指向的是arrarr是数组名代表的是首元素的地址所以p指向的就是首元素的地址 p数据类型为int*p1就是向后移动4*1个字节到达arr[1]的地址解引用是取4个字节取到的就是arr[1] p既然是首元素地址那p和arr就没区别所以p[1] 等价于 arr[1]为2 2. 包含强制类型转换的加法 #include stdio.h int main() {int arr[5] {1, 2, 3, 4, 5};int *p arr;printf(%d\n, *((char*)p 1));printf(%d\n, *((short*)p 2));return 0; } 答案及解析0 2 这时候我们必须要用二进制来表示数字因为这里涉及到了强制类型转换此时加法和解引用都会受到影响。所以这里的第一个输出语句是先强制类型转换成char*类型然后一直是对char*类型的指针进行加法和解引用这里我一直按小端讲解 而我们的第二个输出语句则是强制转换short*加法和解引用都是2字节 3. 包含二维数组和数组指针的加法 #include stdio.h int main() {int arr[2][2] {{1, 2}, {3, 4}};int (*p)[2] arr;printf(%d\n, **(p 1));return 0; } 在这里首先要知道二维数组名代表的是什么我们必须清楚一个逻辑 二维数组是一维数组的数组也就是说可以把二维数组看成存放一维数组的数组 这样说肯定很抽象我们看图 二维数组名代表的是第一行的地址也就是代表整个第一行相当于arr[0]那二维数组名就是一个数组指针了因为数组指针也是表示的一个数组的地址所以我们可以定义一个数组指针p arr那p 1就要慎重了p的数据类型是int (*)[2]所以p1就是移动整个数组的大小所以p1 就指向的是arr[1]这个数组p 1 arr[1]所以解引用一次就是取到了整个数组arr[1]但是*(p 1) arr[1]arr[1]是这个二维数组的行相当于该行这个一维数组的数组名既然是一维数组的数组名就是首元素地址那就是int*类型再解引用就是解引用4字节拿到的就是3.
http://www.hkea.cn/news/14296666/

相关文章:

  • 常州住房和城乡建设局网站酒店行业的网站建设
  • 敦煌网站建设手机网站有哪些
  • sns有哪些著名的网站想开发个网站
  • 金融做推广的网站北京网站开发怎么样
  • 网站建设工作会议.东莞外包公司有哪些
  • 西安学校网站制作wordpress+sdk.js好卡
  • 卖酒的网站做线下怎么做微网站怎么做的好名字吗
  • 网站的后缀名怎么建设做网站的步骤 优帮云
  • 达州网站建设的公司南宁工程建设信息网
  • 网站建设销售渠道网站开发 怎样做费用结算
  • 在线建站网站摄影网站设计报告
  • 成都网站建设私单少女のトゲ在线观看动漫
  • 网站已有备案了 现在换空间商还用备案么华润置地建设事业部官方网站
  • 网站怎么做实名认证吗wordpress正版
  • 广州建站哪个济南兴田德润实惠吗app网站及其特色
  • 户网站建设整改报告做企业网站的公司
  • 想做个电影网站该怎么做安徽省住房建设工程信息网站
  • 重庆营销型网站建设价格长沙网络建设的网站
  • 怎样维护公司网站百度问问首页
  • 涿州做网站建设做效果图比较好的模型网站
  • 东莞网上做公司网站html跳转另一个网页的代码
  • 做推送的网站推荐建一个团购网站需要多少钱
  • 网站建设中采用的技术如何做好区县外宣网站建设
  • 深圳建站公司兴田德润电话多少商品展示型网站有哪些
  • 要怎么做网站建购物网站怎么建呀
  • 自己做qq头像静态的网站wordpress字体设置
  • 网站建设推广专员岗位职责wordpress禁止中国ip
  • 如何建设个人网站下载手机app客户端下载安装
  • 网站建设体质喝什么茶调兵山网站
  • 新闻发布的网站怎样在领英上做公司网站