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

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

 C语言(长期更新)

第12讲:指针二详解

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


目录

 C语言(长期更新)

第12讲:指针二详解

知识回顾

12.1 数组名

12.2 一维数组传参的本质

12.3 冒泡排序

12.5 二级指针

12.6 指针数组

12.7 指针数组模拟二维数组


知识回顾

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


12.1 数组名

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

有两个例外

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

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

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

12.2 一维数组传参的本质

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

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

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

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

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

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

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

12.3 冒泡排序

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

进阶

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

12.5 二级指针

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

存放在二级指针里

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

可以这么理解

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

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

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

12.6 指针数组

存放指针的数组

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

12.7 指针数组模拟二维数组

parr[i][j]是什么鬼?怎么就似曾相识呢?

有点像arr[i][j]

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

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

所以parr[i][j]==arr[i][j]

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

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


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

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

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

相关文章:

  • 【嵌入式电机控制#进阶6】三段启动法
  • 怎么为服务器设置或重置服务器密码?
  • 【Vue2 ✨】Vue2 入门之旅(九):Vue Router 入门
  • JetBrains 2025 全家桶 11合1 Windows直装(含 IDEA PyCharm、WebStorm、DataSpell、DataGrip等
  • [密码学实战]智能密码钥匙SKF库软实现(四十六)
  • LabVIEW应急柴油发电机组诊断装置
  • LabVIEW振动信号积分处理
  • 【设计模式】通俗讲解设计模式的七大原则
  • 【设计模式】从游戏角度开始了解设计模式 --- 创建型模式(一)
  • Python OpenCV图像处理与深度学习:Python OpenCV性能优化与高效图像处理
  • VGG改进(7):基于Spatial Attention的性能优化
  • 从“叠加”到“重叠”:Overlay 与 Overlap 双引擎驱动技术性能优化
  • Spring MVC + JSP 项目的配置流程,适合传统 Java Web 项目开发
  • 【MySQL】初识数据库基础
  • RAG-检索进阶
  • 【一张图看懂Kafka消息队列架构】
  • 【C++】编写通用模板代码的重要技巧:T()
  • 与后端对话:在React中优雅地请求API数据 (Fetch/Axios)
  • 基于STM32的智能语音浴缸设计
  • 工业视觉光源选色指南:白光通用、蓝光显瑕疵、红光能穿透,看完直接用
  • 推荐一个论文阅读工具ivySCI
  • C++内存管理,模板初阶(泛型编程)
  • 项目组文档标准不一致的原因有哪些
  • 设计模式:命令模式(Command Pattern)
  • 测试覆盖率不够高?这些技巧让你的FastAPI测试无懈可击!
  • java-设计模式-3-创建型模式-原型
  • GPT-5 技术应用指南:从底层能力到工业级落地
  • 零基础Linux操作基础小白快速掌握Shell脚本bash的配置文件
  • PHP操作LibreOffice将替换变量后的word文件转换为PDF文件
  • CICD的持续集成与持续交付和Zabbix