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

网站开发培训什么搜外seo

网站开发培训什么,搜外seo,python网站开发的优势,网页设计师工资水平前言 指针变量的解引用和加法运算是非常高频的考点#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/14581411/

相关文章:

  • 突唯阿 领先的响应式网站建设平台建网站要多少钱 东莞
  • 网站建设网上书店镇江制作网页图片
  • 四川省建设工程网站在线logo制作网站
  • 门户网站建设工作情况汇报推广服务
  • 漳浦县建设局网站html网站可以做访问统计吗
  • 设计网站的素材知乎怎么做自己网站推广产品
  • 大气网站后台界面商贸公司起名字大全免费
  • 景安网站备案要多久电商网站管理
  • 德宏做网站一 建设网站前的市场分析
  • 一个人怎样做网站敬请期待和敬请期待
  • 企业网站推广方法实验报告汕头如何建设网站设计
  • 做网站仓库报表系统网络营销的目的和意义
  • 企业注册很多网站的好处什么网站可以看女人唔易做
  • 克拉玛依建设局网站6免费分销平台有哪些
  • 开发h5网站开发wordpress 修改ssl
  • 谷歌网站地图生成wordpress头像上传插件
  • 给网站做插画分辨率新品发布会策划方案ppt
  • 门户网站做吗基于html5的购物网站开发
  • h5商城网站是什么意思怎样做分类网站
  • 2019做网站wordpress category.php制作
  • 做公司网站需要营业执照吗企业信用等级查询系统
  • 建设银行签证预约网站七台河做网站
  • 洛阳专业做网站多少钱wordpress 5.2中文版
  • 神东集团网站建设苏州有哪些做网站
  • 修改图片网站wordpress开发者中心
  • 外贸类网站模板做统计的网站
  • 郑州网站开发douyanetopenwrt wordpress
  • 民族团结 网站建设秦皇岛市做公司网站的
  • 宝安网站设计哪家最好2023房地产最新消息
  • 手机的网站建设目标是什么意思嘉兴做网站多少钱