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

专门做网站的公司与外包公司海外发布新闻

专门做网站的公司与外包公司,海外发布新闻,网模,wordpress magazine目录 前言 ​编辑 指针 内存与地址 计算机常见单位 理解编址 取地址#xff0c;指针变量#xff0c;解引用 取地址 指针变量 解引用 指针变量大小 指针类型的作用 char*解引用后 指针-整数 应用 void*指针 const修饰指针变量 const修饰普通变量 const修饰指…目录 前言 ​编辑 指针 内存与地址 计算机常见单位 理解编址 取地址指针变量解引用 取地址 指针变量 解引用 指针变量大小 指针类型的作用 char*解引用后 指针-整数 应用 void*指针 const修饰指针变量 const修饰普通变量 const修饰指针变量 理清pa与pa*的含义 代码 int const*paa; ​编辑  代码  int *const paa; 指针计算 指针-指针 应用模拟实现strlen函数 野指针 成因 指针未初始化 指针越界访问 指针指向空间释放 规避野指针 前言 你是否也是在学习c语言碰到了拦路虎 下面我将通过这篇文章来和大家一起了解并熟悉c语言指针拿捏指针的每一处细节~ 创作不易可以帮忙点点赞吗 如有差错欢迎指出 指针 c语言中的指针其实就是计算机内存中的地址即内存单元的编号。通过地址CPU就可以快速找到一个内存空间。 所以  内存单元的编号地址指针 但是我们口头上的指针实际是指针变量。 内存与地址 计算机中的内存可以类比为生活中的一栋房子地址则是房子中每个房间的门牌号。 内存被划分为内存单元1个字节 计算机常见单位 1byte(字节)8bit(比特位) 1KB1024byte 1MB1024KB 1GB1024MB 1TB1024GB 1PB1024TB 理解编址 如图 以下为CPU和内存之间交互数据的大致模式 若CPU要从内存中取出一个值则cpu通过控制总线下达取出的命令通过地址总线获得内存中的地址通过地址找到目标值后再通过数据总线传给CPU。 若CPU要在内存中存储一个值则cpu通过控制总线下达存储的命令通过地址总线给目标值开辟一个空间并编址通过地址CPU通过数据总线把值传给内存并存储起来。 取地址指针变量解引用 取地址 如图在32位的机械下打印变量a的地址 其中a占4个字节打印的地址其实是第一个字节的地址 指针变量 指针变量是专门存放地址的 如图 int* pa a;  pa 是 指针变量 用于存放地址指针*说明pa是指针变量int说明pa指向的对象是int类型的 解引用 *pa 20 ; * 解引用操作符意为通过pa中的地址找到a *pa等价于a,所以等同于代码a20 指针变量大小 指针变量大小取决于一个地址的存放需要多大空间 32位机器上地址线是32根地址的二进制序列就是32bit位要4字节32bit位的空间存放地址。所以32位机器的指针变量大小都是4个字节。 指针变量大小与类型无关在相同的平台下大小都相同。 如图 32位机器 同理64位机器上指针变量大小都是8个字节。 64位机器 指针类型的作用 指针类型决定了对指针解引用的时候有多大权限一次能操作几个字节 比如 char*的指针解引用就只可以访问1个字节而int*是4个。 图解如下 未解引用之前 int*解引用后 char*解引用后 指针-整数 指针的类型决定了指针向前或向后走一步有多大距离 如图不同指针类型加减整数的结果 int*的pa1 char*的pa1 应用 #includestdio.h //指针-整数的应用 int main() {int arr[10] { 0 };int* p arr[0];//将数组全部初始化为1for (int i 0; i 10; i){*p 1;p;}//打印p arr[0];//再让p回到起始位置for (int i 0; i 10; i){printf(%d , *p);p;}return 0; } void*指针 void*指针是无具体类型的特殊指针泛型指针可以接受任意类型地址 但是 不能直接进行解引用操作也不能进行指针-整数 const修饰指针变量 const修饰普通变量 如图const仅仅是在语法上做了限制我们习惯叫a为常变量 用指针变量pa间接修改a的值却不会报错无视const。 const修饰指针变量 const修饰指针变量 理清pa与pa*的含义 pa里面存放的是地址a的地址 pa是变量有自己的地址 *pa是pa指向的空间 代码 int const*paa; const限制的是*pa,修改*pa会报错但修改pa的值没问题 代码  int *const paa; const限制的是pa,可以修改*pa,但修改pa会报错 指针计算 指针-指针 指针-指针 即 地址-地址得到的绝对值是指针和指针之间的元素个数 前提条件两个指针指向同一块空间 应用模拟实现strlen函数 分别使用了 指针-整数 和 指针-指针两种方法 其中代码while*s!\0可以简化为while(*s) 因为\0的ASCII码值为0地址加到\0时0为假自然会跳出循环 //指针-整数 int my_strlen1(char* s)//传字符串的地址返回字符串长度 {int count 0;while (*s ! \0){count;s;//地址1}return count; }//指针-指针 int my_strlen2(char* s) {char* start s;while (*s ! \0){s;}return s - start;//地址-地址 } #includestdio.h int main() {//strlen 求字符串的长度 求‘\0’之前的字符串长度int len my_strlen1(abcda);//模拟实现strlen函数printf(%d\n, len);len my_strlen2(abcda);//模拟实现strlen函数printf(%d\n, len);return 0; } 结果 野指针 野指针是指针指向位置是不可知的随机的、不正确的、没有限制的 成因 指针未初始化 指针越界访问 指针指向空间释放 规避野指针 初始化指针若不知道指针应该指向哪里可以指向NULL 所以指针变量不使用时要及时置NULL NULL是c语言中的标识符常量值为0地址也为0但此地址无法使用读写地址会报错
http://www.dnsts.com.cn/news/3008.html

相关文章:

  • 网站维护 内容软文网站推广
  • 怎么样在网站上做跳转360seo排名点击软件
  • 域名做网站腾讯企业qq官网
  • 网站建设改版西安危机公关公司
  • 义乌国际贸易综合信息服务平台清理优化大师
  • 旅行网站开发意义网络黄页推广软件哪个好
  • 门户网站开发流程小程序开发需要哪些技术
  • 科技网站推荐营销方案怎么写
  • 网站建设费用计算常用的搜索引擎有
  • 做网站主要来源seo是什么意思为什么要做seo
  • 怎么给网站添加黑名单地推平台去哪里找
  • 做网购的有哪几个网站竞价推广sem
  • 专做外贸的网站二级子域名ip地址查询
  • 杭州做网站公司百度搜索关键词排名人工优化
  • 做网站公司在哪企业管理培训班
  • 国外自建站怎么样西安网络推广外包公司
  • b2c网站怎么做seo培训班 有用吗
  • 海口模板建站平台ui设计
  • 做贷款行业哪些网站能发布广告关键字优化
  • 霸县网站建设郑州百度搜索优化
  • 这个网站中有网名做会计的吗 了解一下搜狗网页搜索
  • 网站建设推广关键词百度联盟项目看广告挣钱
  • 河北建设工程信息网官方网站天津关键词排名提升
  • calypso wordpress企业网站设计优化公司
  • 济南企业制作网站站长工具seo查询软件
  • 华夏业务员做单的网站seo课程培训班费用
  • 做的好的音乐网站的特点网络营销产品推广方案
  • 有服务器有域名怎么做网站大数据精准营销的策略
  • 旅游景区网站建设方案seo外链招聘
  • 源码怎么做网站收录好的网站