C语言(长期更新)第12讲:指针二详解

C语言(长期更新)

第12讲:指针二详解

++跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容++ ++,你的支持就是博主最大的动力++。博主主页:潼心1412o-CSDN博客


目录

C语言(长期更新)

第12讲:指针二详解

知识回顾

[12.1 数组名](#12.1 数组名)

[12.2 一维数组传参的本质](#12.2 一维数组传参的本质)

[12.3 冒泡排序](#12.3 冒泡排序)

[12.5 二级指针](#12.5 二级指针)

[12.6 指针数组](#12.6 指针数组)

[12.7 指针数组模拟二维数组](#12.7 指针数组模拟二维数组)


知识回顾

++今天我们来继续学习指针的内容,坐稳了,我们发车,gogogo,出发喽!++


12.1 数组名

在大多数情况下,数组名==数组首元素的地址

有两个例外

sizeof(数组名)单独放数字名,这时数组名代表整个数组

计算的是整个数组的大小,单位是字节

&数组名,这里数组名代表的是整个数组,去除的事整个数组的地址

12.2 一维数组传参的本质

本质上是数组传参传递的是数组首元素的地址

我们发现同样的计算方式,在函数内部无法正确计算数组的长度

因为在形参的arr是一个首元素的地址,而非数组本身

所以我们之前在扫雷游戏中,每写一个函数,除了传址调用的函数名,还有数组长度

这不仅是以为方便,函数内部是无法用这种方法进行计算的

根据这个本质,我们可以得到结论:

一维数组传参,形参的部分可以写成数组的形式,也可以写成指针的形式

12.3 冒泡排序

核心思想:两两相邻元素进行比较

进阶

要是第一趟下来就没有变动,就无需后续再进行排序了

12.5 二级指针

指针变量也是变量,有变量就有地址。那么至真的地址又该存放在那里呢?

存放在二级指针里

一级指针是一颗*,二级指针就是两颗*

可以这么理解

二级指针指向的类型是int*,而后面的那颗*代表二级指针本身是指针

对二级指针解应用*ppa,得到的会是pa,

想要得到a,就需要对ppa进行两次解应用操作,即**ppa

12.6 指针数组

存放指针的数组

数组中的每个元素都存放指针

12.7 指针数组模拟二维数组

parrij是什么鬼?怎么就似曾相识呢?

有点像arrij

我们分析一下,Parr\[\]中村放的是一维数组的地址,那么parri就对应着arri

我们知道二维数组的本质是一维数组的数组

所以parrij==arrij

parri是访问parr数组的元素,parri找到的数组元素指向了整型⼀维数组,parrij就是整型⼀维数组中的元素。

上述的代码模拟出⼆维数组的效果,实际上并非完全是⼆维数组,因为每⼀行并非是连续的


++好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~++

博主主页:潼心1412o-CSDN博客

相关推荐
IvanCodes3 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
无敌贵点大王6 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1016 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
qq_2518364577 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理8 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手8 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长9 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Escalating_xu10 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言