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

详解指针2

上期内容我们已经学习了指针的基础知识,本期博主给大家分享一下指针的进阶内容继续深入了解指针;

大纲

一、数组名的理解

举个栗子,便于更好的理解:

我们发现&arr和&arr[0]拿到的地址是一样的;因此我们可以得出一个结论:

数组名==数组首元素地址

接下来我们继续分析代码:

大家都了解了数组名==数组首元素地址,一个整型占4个字节;那么答案就是4/8;答案是40;

注意:数组名==数组首元素地址是成立的,但是有两个例外:

  • sizeof(数组名):sizeof中单独存放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节;
  • &数组名:这里的数组名表示整个数组,取出的是整个数组的地址

这⾥我们发现&arr[0]和&arr[0]+1相差4个字节,arr和arr+1 相差4个字节,是因为&arr[0] 和 arr 都是 ⾸元素的地址,+1就是跳过⼀个元素。 但是&arr 和 &arr+1相差40个字节,这就是因为&arr是数组的地址,+1 操作是跳过整个数组的。 到这⾥⼤家应该搞清楚数组名的意义了吧。

二、使用指针访问数组

通过调试代码,我们发现数组名arr是数组⾸元素的地址,可以赋值给p,其实数组名arr和p在这⾥是等价的。

通过调试代码将*(p+i)换成p[i]也是能够正常打印的,所以本质上p[i] 是等价于 *(p+i)。同理arr[i] 应该等价于 *(arr+i),数组元素的访问在编译器处理的时候,也是转换成⾸元素的地址+偏移 量求出元素的地址,然后解引⽤来访问的。

三、一维数组传参的本质

总结⼀维数组传参,形参的部分可以写成数组的形式,也可以写成指针的形式。

四、冒泡排序

冒泡排序的核⼼思想就是:两两相邻的元素进⾏⽐较。

接下来我们使用代码来实现这个过程:

方案一:

方案二:

五、二级指针

指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪⾥?
二级指针

六、指针数组

指针数组到底是指针还是数组呢?

答案是数组;是用来存放指针的数组。

指针数组的每个元素都是⽤来存放地址(指针)的。

指针数组的每个元素是地址,⼜可以指向⼀块区域;

总结

本文深入讲解了指针的进阶知识,重点包括:1)数组名的特殊含义,指出数组名通常代表首元素地址,但在sizeof和&操作时例外;2)指针访问数组的原理,解释p[i]等价于*(p+i)的底层实现;3)一维数组传参的两种形式(数组和指针);4)冒泡排序的实现原理;5)二级指针的概念及其存储指针变量地址的作用;6)指针数组的定义和用途。文章通过代码示例和内存分析,帮助读者深入理解这些关键指针概念。


转眼间又要和大家说再见了,以上就是博主要给大家分享的所有内容了;希望大家能有所收获,可以的话请三连支持一下;你的支持是我持续创作最大的动力;

http://www.dtcms.com/a/449793.html

相关文章:

  • 第一章 :感知机(上)
  • 做网站都要会些什么设计网站建设合同书6
  • 网站开发工程师 能做什么响应式布局的概念
  • 反激开关电源
  • 长沙网站建设外贸0基础做电商从何下手
  • vs2015做网站做民宿需要和多家网站合作吗
  • 集团型网站建设室内设计平面图简单
  • 比利时网站后缀用php做的网站前后台模板
  • 视频网站如何做微信营销长春火车站和高铁站是一个站吗
  • steamdeck 龙神Ryujinx模拟器输入控制器无效
  • 彩票网站网站建设路由器上建网站
  • 网站建设如何推广业务如何备份wordpress网页
  • linux学习笔记(16)进程间通信——管道
  • 巩义网站建设定制电子商城系统开发
  • AI编程开发系统020-基于Vue+SpringBoot的景云手机维修管理网站系统(源码+部署说明+演示视频+源码介绍+lw)
  • 【算法】【优选算法】BFS 解决拓扑排序
  • 做网站3年3万wordpress搭建ctf
  • 网站建设设计公司哪家好企业网站html源代码
  • 质因数分解的数学奥秘与高效解法(洛谷P1075)
  • 站长工具seo综合查询降级网站后期的维护
  • 电商网站建设资讯淘宝网站图片维护怎么做
  • 机器学习完整流程详解
  • 计算机网络(六):网络层(功能概述、异构网络互联、路由与转发、拥塞控制)
  • 理解C++20的革命特性——协程引用之——利用协程做一个迷你的Echo Server
  • PDF文件翻译新方法:轻松多语言转换!
  • 网站建设 开源外包做网站公司
  • 济南网站推广公司php网站建设平台搭建
  • 【Linux 系统】文件系统与软硬件连接
  • AI大事记10:从对抗到创造——生成对抗网络 (GANs)
  • 珠海网站建设技术支持wordpress卸载 数据库