【带头学C++】----- 三、指针章 ---- 3.7 数组指针

news2024/10/7 0:05:11

3.7 数组指针      

1.数组指针的概述

     数组指针是一个指向数组的指针变量,是用来保存数组元素的地址。在C/C++中,数组名代表了数组的首地址,可以被解释为一个指向数组第一个元素的指针。因此,一个指向数组的指针可以通过数组名来获得。

例如:        int arr[5]={10,20,30,40,50};

//需求定义一个指针变量 保存 数组元素的地址

int *ptr;
ptr = &arr[0];

ptr = arr;        //arr作为地址 第0个元素的地址  arr==&arr[0]

ptr = &arr[3];  //也可以保存第三个元素的地址

    可以使用数组名arr来获取数组的首地址。然后,可以声明一个指向该数组的指针变量来保存这个地址:

int *ptr = arr; // 等价于 int *ptr = &arr[0];

        在上述代码中,ptr是一个指向整型的指针变量,通过将数组名arr赋值给ptrptr指向了数组arr的首元素,即arr[0]

       通过指针操作符*和索引,我们可以访问数组的元素。例如,要访问数组的第三个元素,可以使用以下语法:

int value = *(ptr + 2); // 等价于 int value = arr[2];

       在这里,ptr + 2将指针移动了两个长度为sizeof(int)的单位,即指向了数组的第三个元素。然后,通过解引用操作符*,我们可以获取该元素的值。

2 数组元素的指针变量 和数组名(作为地址)等价

     数组指针还可以用于传递数组给函数。在函数参数中,可以将数组声明为指针或使用指针作为参数类型来接收数组。这是因为数组名会自动转换为指向数组首元素的指针。

 

 

3 在使用中 [ ] 就是*()的缩写

 为啥    arr ==&arr[0]?

&arr[0] == &*(arr+0) == arr+0 == arr

案例1: p[-1]的值是    30            p[-1] 实际是代表  *(p - 1)

int arr[5] = (10,20,30,40,50};   //*p指向的是40的位置

int *p = arr+3;

案例2: p[1]的值是    50                   p[1] 实际是代表  *(p + 1)

int arr[5] = (10,20,30,40,50};//*p指向的是40的位置

int *p = arr+3;

4 指向同一数组元素的两个

 int arr(5) = {10, 20,30,40,50};     int *p1 = arr;     int *p2 = arr+4;

 

1、两指针变量相减,等于它们间的元素个数

2、两指针变量赋值= p2=p1 它们指向同一处

3、两指针变量判断相等 == p2==p1 它们是否指向同一处

4、两指针变量判断大小   >   <   >=   <=   !=   

p1>p2    p1!=p2     判断它们的位置关系

5、两指针变量不能相加(!) p1+p2无意义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1167809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安达发|APS智能优化排产软件的优先级应用

在制造业中&#xff0c;订单排产是一个重要的环节&#xff0c;它直接影响到生产效率、交货期和客户满意度。为了提高订单排产的效率和准确性&#xff0c;许多企业开始采用APS&#xff08;高级计划与排产&#xff09;智能优化排产软件。APS软件可以根据企业的生产资源、订单需求…

人大女王大学金融硕士项目——披星戴月走过的路,一定可以繁花满地

道路是曲折的&#xff0c;前途是光明的&#xff0c;在路上多花点时间到达才更有意义&#xff0c;作为身经百炼的职场人士&#xff0c;也难免遇到瓶颈期。这个时候&#xff0c;如果不改变自己&#xff0c;就很容易陷入焦虑。而在职读研便是一个很好的方式&#xff0c;一遍学习&a…

未来架构:无服务器计算和容器的融合

文章目录 无服务器计算&#xff1a;构建和扩展应用的新方式优势&#xff1a;示例代码&#xff1a; 容器技术&#xff1a;实现跨环境一致性优势&#xff1a;示例代码&#xff1a; 无服务器与容器的融合优势&#xff1a;示例代码&#xff1a; 未来架构的挑战和展望结论 &#x1f…

全球250米年度城区范围产品数据

简介 全球250米年度城区范围产品&#xff08;MGUP&#xff09;基于现有的城区产品CCI-LC、MCD12Q1和GlobeCover产品经样本清洗自动化得到可靠的多时序城区样本。前言 – 人工智能教程 将全球划分为5格网使用随机森林分类器对2001-2018年进行全球城区范围制图。经时空后处理后&…

记一次,kettle执行JOB的一个BUG,linux下环境表输入(查询)卡住问题,windows环境下执行正常。

问题 采集数据&#xff0c;linux下执行JOB时。 发现表输入卡在&#xff0c;查询卡住&#xff0c;如图&#xff0c;11:37:19、11:37:42、 11:42:56 分别在40000、60000行的时候卡住&#xff0c;23s、5分14s。 拿出sql到pl/sql上查询&#xff0c;并查看执行计划&#xff0c;均…

盘点10月Sui生态发展,了解Sui的近期成长历程!

10月是Web3的Uptober&#xff0c;整个行业在经历了深度的低潮期后迎来了一些回暖。Sui也紧跟行业脚步&#xff0c;举办了各类生态活动&#xff0c;包括Quset 3游戏主题的奖励活动、DeFi和zklogin专题Workshop & AMA、多平台发布的线上教育内容以及持续的科普文章输出。此外…

SPSS二项分布检验

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

多测师肖sir___app测试_001

app测试 一、app测试分为两大类 app手工测试&#xff08;讲&#xff09; app自动化测试&#xff08;讲&#xff09; &#xff08;1&#xff09;手工app测试&#xff1f; 就是通过手点击app上的应用&#xff0c;cs架构上 &#xff08;2&#xff09;app自动化测试&#xff1f; 通…

*LEEDCODE 73矩阵置零

![在这里插入代码片](https://img-blog.csdnimg.cn/ab1d7d4b9d5046d8900de430249be3bf.png)1 0 0 替换两个列表 2 记录时 0 0 已经是半改好的状态

整理10个地推拉新app接单平台,免费一手推广渠道平台干货分享

1. 聚量推客&#xff1a; “聚量推客”汇聚了众多市场上有的和没有的地推网推拉新接单项目&#xff0c;目前比较火热&#xff0c;我们做地推和网推从业者如果长期在这行业去做推广可以使用这个平台&#xff0c;价格高数据也好&#xff0c;大部分拉新项目也都是官签一手资源 一…

nodejs express uniapp 图书借阅管理系统源码

开发环境及工具&#xff1a; nodejs&#xff0c;mysql5.7&#xff0c;HBuilder X&#xff0c;vscode&#xff08;webstorm&#xff09; 技术说明&#xff1a; nodejs express vue elementui uniapp 功能介绍&#xff1a; 用户端&#xff1a; 登录注册 首页显示轮播图&am…

shell脚本的一些测试和笔记总结

目录 1、cat <<EOF2、echo -e3、$#、 $、 $* 、 $?4、测试的demo 1、cat <<EOF cat命令表示查看&#xff0c;而cat <<EOF命令表示将进行输入&#xff0c;直到以EOF终止符来结束输入&#xff08;最后的新行&#xff09;。EOF必须写在一行的头部&#xff0c;…

2023李宏毅机器学习HW05样例代码中文注释版

这里只是 2023 李宏毅机器学习 HW05 样例代码的中文注释版的分享&#xff0c;下面的内容绝大部分是样例代码&#xff0c;补充了小部分函数的功能解释&#xff0c;没有做函数功能上的修改&#xff0c;是 Simple baseline 版本。 notebook 代码下载: [EN] [ZH] 文章目录 作业描述…

为什么CDN要部署全球节点 有什么好处

当今互联网时代&#xff0c;CDN&#xff08;内容分发网络&#xff09;已经成为网络加速的重要工具。CDN通过分布式节点在全球范围内分发内容&#xff0c;从而提高网站和应用的性能&#xff0c;减少延迟&#xff0c;降低带宽成本&#xff0c;增强用户体验。本文将探讨CDN加速的好…

浪涌保护器,漏电保护器和空气开关的区别

地凯科技浪涌保护器 浪涌保护器&#xff0c;也叫防雷器或过电压保护器&#xff0c;是一种为各种电子设备、仪器仪表、通讯线路提供安全防护的电子装置。它主要用于限制过电压和泄放浪涌电流。 浪涌是指瞬间超出稳定值的峰值&#xff0c;包括浪涌电压和浪涌电流。供电系统的浪…

进击的代码之路:如何培养解决问题的架构思维?

目录 一、拓宽知识面 二、学习设计原则与模式 三、培养系统思维 四、注重可扩展性 五、多角度思考 六、实践经验总结 七、团队协作与交流 培养解决问题的架构思维是每位开发者在成长过程中都需要掌握的重要能力之一。架构思维不仅可以帮助我们更好地理解和解决复杂的技…

子串简写(第14届蓝桥杯b组题目)

程序猿圈子里正在流行一种很新的简写方法&#xff1a; 对于一个字符串&#xff0c;只保留首尾字符&#xff0c;将首尾字符之间的所有字符用这部分的长度代替。 例如 internationalization 简写成 i18n&#xff0c;Kubernetes 简写成 K8s&#xff0c;Lanqiao 简写成 L5o 等。 …

【实用】得到三个动态时间点作为分界点

因为周报需要对比上周,所以现在有一个需求&#xff0c;动态生成上周周一的时间点&#xff0c;类似 ‘2023-10-23 00:00:00’ 并将值赋予给time2变量,将time2 减去7天&#xff0c;得到的时间点赋值给time1&#xff0c;将time2 减去7天&#xff0c;得到的时间点赋值给time3&#…

java学习路线24版

前言 作为大四老学长的秃狼&#xff0c;近日收到大量兄弟们的私信&#xff0c;希望我能出一期java学习路线的视频&#xff0c;很多小伙伴也是大一的新生&#xff0c;都想和我一样做最美逆行者。还有一些非科班准备转码的小伙伴&#xff0c;不想走培训班那条路线想要通过自学找…

利用 docker 实现JMeter分布式压测

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…