深入理解指针(2)
创始人
2024-11-14 00:38:04
0

1. 数组名的理解

2. 使⽤指针访问数组

3. ⼀维数组传参的本质

4. 冒泡排序

5. ⼆级指针

6. 指针数组

7. 指针数组模拟⼆维数组

1. 数组名的理解

数组名就是数组⾸元素(第⼀个元素)的地址。

这里输入为40,明显与上面不一样。

其实数组名就是数组⾸元素(第⼀个元素)的地址是对的,但是有两个例外:

1.sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩, 单位是字节

2. &数组名,这⾥的数组名表⽰整个数组,取出的是整个数组的地址(整个数组的地址和数组⾸元素 的地址是有区别的)

这里我们发现&arr[0]和&arr[0]+1相差4个字节,arr和arr+1相差4个字节,是因为&arr[0]和arr都是 首元素的地址,+1就是跳过⼀个元素。

但是&arr和&arr+1相差40个字节,这就是因为&arr是数组的地址,+1操作是跳过整个数组的。

2. 使用指针访问数组

我们发现,将*(p+i)换成p[i]也是能够正常打印的,所以本质上p[i]是等价于*(p+i)

同理arr[i] 应该等价于*(arr+i),数组元素的访问在编译器处理的时候,也是转换成⾸元素的地址+偏移量求出元素的地址,然后解引⽤来访问的

3. ⼀维数组传参的本质

我们发现函数内部没有求出数组的元素个数。因为:数组名是数组首元素的地址,那么在数组传参 的时候,传递的是数组名,也就是说本质上数组传参本质上传递的是数组首元素的地址。

所以函数形参的部分理论上应该使用指针变量来接收⾸元素的地址

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

4. 冒泡排序

冒泡排序的核心思想就是对比相邻两个数的大小

5.⼆级指针

指针变量存放的地址就叫二级指针。

*ppa通过通过&pa找到pa 还有个*就是 *pa也就是&a。

6. 指针数组

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

7. 指针数组模拟二维数组

parr[i]是访问parr数组的元素,parr[i]找到的数组元素指向了整型⼀维数组,parr[i][j]就是整型⼀维数 组中的元素。

parr数组的首元素就是第一行。

相关内容

热门资讯

黑科技辅助(wepoke安卓版... 黑科技辅助(wepoke安卓版)外挂软件透明挂智能ai辅助黑科技(透视)实用技巧(2021已更新)(...
避坑细节“wepoker私人局... 避坑细节“wepoker私人局确实真的有挂”(透视)详细开挂辅助教程我们来了解一下wepoker透视...
第7分钟了解!微乐小程序游戏破... 第7分钟了解!微乐小程序游戏破解器下载插件开挂,陕西三代辅助软件透视挂(最新版本2026)1、进入到...
7分钟辅助!海盗来了辅助器最新... 7分钟辅助!海盗来了辅助器最新,九游破解辅助插件(正版透视开挂辅助神器)1、完成海盗来了辅助器最新的...
分享一款!德州之星外挂购买渠道... 分享一款!德州之星外挂购买渠道,太坑了确实存在有挂(2020已更新)(哔哩哔哩);1、让任何用户在无...
9分钟了解!情怀莆仙吹牛脚本插... 9分钟了解!情怀莆仙吹牛脚本插件开挂,哥哥打大a游戏攻略软件透视挂(最新版本2026)1、哥哥打大a...
黑科技辅助(德州wepower... 黑科技辅助(德州wepower)外挂软件透明挂智能ai代打辅助脚本(透视)插件教程(2021已更新)...
解密关于“wepoker德州作... 解密关于“wepoker德州作z弊辅助挂”(透视)详细开挂辅助教程技术的发展为玩家提供了更多的工具和...
2分钟辅助!三哥玩摆头挂,小闲... 2分钟辅助!三哥玩摆头挂,小闲川南手游辅助器(正版透视开挂辅助软件)1、任何小闲川南手游辅助器ai辅...
科普攻略!aapoker可以进... 科普攻略!aapoker可以进俱乐部,太坑了先前是有挂(2022已更新)(哔哩哔哩);相信小伙伴都知...