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

指针 (五)

一 . 字符指针变量

在指针的类型中,有一种是字符指针:char * ,用法如下:

下面我们通过一道试题来加深理解:

看着这个运行结果,是不是跟自己心中预想的答案有一些出入呢?下面为诸君解读一下:

在这段代码中,str3 和 str4 指向的是同一个常量字符串。我们C语言(或者C++)中,会把常量字符串储存到单独的一个内存区域中,当这里的几个指针指向同一个字符串的时候,他们实际上就是指向了同一块内存。但是当我们用相同的常量字符串去初始化不同数组的时候就会开辟出不同的内存块,因此 str1 和 str 2不同,str3 和 str4 相同

二 . 数组指针变量

之前我们学习了指针数组,指针数组是一种数组,数组中存放的是指针(地址)

那么我们的数组指针变量是指针变量还是数组呢?答案是——指针变量

我们之前了解到过的:

整型指针变量:int * print 存放的是整型变量的地址,是能够指向整形数据的指针

浮点型指针变量:float * pf 存放的是浮点型变量的地址,是能够指向浮点型数据的指针

由此可得:数组指针变量应该是存放的数组的地址,是能够指向数组的指针变量

我们可以先试着思考一下:以下代码哪一个是数组指针变量?

答案应该是第二个,数组指针变量的正确格式如下:

我们的 p 会先和 * 结合,说明 p 是一个指针变量,然后指针指向的是一个大小为 10 的整形数组。p 是一个指针,指向一个数组,这就是我们数组指针的定义

三 . 数组指针变量的初始化

既然我们了解了数组指针变量是用来放地址的,那我们怎样才能获得数组的地址呢?这里就要运用我们之前学过的一个知识点:取地址符号——&,通过&数组名就可以获得数组的地址(也就是数组首元素的地址)

我们通过调试可以看到,&arr 和 p 的类型是一模一样的,都是 int [ 10 ] *,如图:

通过数组指针类型的解析,我们可以更简单的看懂其构造含义:

四 . 二维数组传参的本质

了解了数组指针,我们就可以来深入了解二维数组传参的本质了

二维数组一般的传参格式:

这里的实参是二维数组,形参也是二维数组。那么我们有没有其他的写法呢?

当然是有的,我们将二维数组看做是每个元素是一维数组的数组,也就是二维数组的每个元素都是一个一维数组,那么二维数组的首元素就是第一行,是一个一维数组

所以,我们根据数组名是数组首元素地址这个原则,二维数组的数组名就表示第一行的地址,是一维数组的地址,那么在上面的例子当中,第一行一维数组的类型就是 int [ 5 ] ,所以第一行的地址类型就是 int ( * ) [ 5 ] ,那就意味着二维数组传参本质上就是传递了地址,而且传递的是第一行这个一维数组的地址,所以总结下来,我们形参也可以写成指针形式,如下:

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

OKK,有关于指针的数组指针这一小部分我们今天就说到这里啦,最近开学比较忙,更新较迟,还望诸君见谅哈。我看大家一直都比较佛系,断更了从来也没有催更的哈哈哈哈哈。接下来尽量保持三四天一更的速度。咱们下期再见!与诸君共勉!!!


http://www.kler.cn/a/298837.html

相关文章:

  • 探索多模态大语言模型(MLLMs)的推理能力
  • 学习因子异步化的粒子群优化算法(AsyLnCPSO)——源码
  • 第十五章 C++ 数组
  • Docker 部署 plumelog 最新版本 实现日志采集
  • pytest自动化测试数据驱动yaml/excel/csv/json
  • http协议的状态码
  • uniapp,vite整合windicss
  • CSS全面知识点及其应用
  • vue3项目如何设置同样的接口第一次请求有效,如果第二次请求同样的接口,则不去请求,因为第一次请求还没有返回数据
  • python 图片识别文字
  • WPS VBA插件使用说明
  • 【GoMate框架案例】讯飞大模型RAG智能问答挑战赛top10 Baseline
  • QWidget(c++)嵌入window环境的exe
  • class 7: vue.js 3 前端工程化
  • 面向 AI 学习者的 Python 快速入门(初学者)
  • 经纬恒润高压电池管理系统,助力新能源汽车飞速发展
  • [Linux]:文件(下)
  • 韩国裸机云站群服务器的特点和使用步骤
  • 如何通过技术手段提高对网络赌博资金流向的监测效率?
  • Linux业务系统将/home目录删除并将空间扩给根目录
  • 简要介绍联合索引
  • SprinBoot+Vue校园部门资料管理系统的设计与实现
  • Git操作和提交规范
  • 【算法专题--回文】最长回文子串 -- 高频面试题(图文详解,小白一看就懂!!)
  • 云曦2024秋季开学考
  • TeamTalk数据库代理服务器