【带头学C++】----- 三、指针章 ---- 3.7 数组指针
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
赋值给ptr
,ptr
指向了数组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无意义
相关文章:

【带头学C++】----- 三、指针章 ---- 3.7 数组指针
3.7 数组指针 1.数组指针的概述 数组指针是一个指向数组的指针变量,是用来保存数组元素的地址。在C/C中,数组名代表了数组的首地址,可以被解释为一个指向数组第一个元素的指针。因此,一个指向数组的指针可以通过数组名来获…...

Ubuntu20.04安装CUDA、cuDNN、tensorflow2可行流程(症状:tensorflow2在RTX3090上运行卡住)
最近发现我之前在2080ti上运行好好的代码,结果在3090上运行会卡住很久,而且模型预测结果完全乱掉,于是被迫研究了一天怎么在Ubuntu20.04安装CUDA、cuDNN、tensorflow2。 1.安装CUDA(包括CUDA驱动和CUDA toolkit,注意此…...

untiy打开关闭浏览器
最简单的打开方法,只能打开不能关闭,自动打开默认浏览器 Application.OpenURL("https://www.bilibili.com/");打开关闭谷歌浏览器 using System.Diagnostics;private static Process web;if (web null)//打开 {web Process.Start("Chr…...

独立站优缺点解析,如何用黑科技进行缺点优化
随着跨境电商第三方平台平台红利越来越少,经营风险的不断增加,大部分人知道前年发生的亚马逊封店潮,涉及约1000家企业,5万多个账号,预估损失超过千亿元。 正因如此,更多的国内品牌和卖家不再仅依赖于第三方…...

道本科技||紧跟数字化转型趋势,企业如何提高合同管理能效?
随着数字化转型的快速发展,合同管理对于企业的运营效率和风险控制起着至关重要的作用。那么,如何紧跟数字化转型趋势,利用现代技术和工具提高合同管理的能效,以实现企业更高效、更安全的合同管理就成了企业管理中的核心问题。 在…...

框架安全-CVE 复现Apache ShiroApache Solr漏洞复现
文章目录 服务攻防-框架安全&CVE 复现&Apache Shiro&Apache Solr漏洞复现中间件列表常见开发框架Apache Shiro-组件框架安全暴露的安全问题漏洞复现Apache Shiro认证绕过漏洞(CVE-2020-1957)CVE-2020-11989验证绕过漏洞CVE_2016_4437 Shiro-…...

【OpenCV实现图像梯度,Canny边缘检测】
文章目录 概要图像梯度Canny边缘检测小结 概要 OpenCV中,可以使用各种函数实现图像梯度和Canny边缘检测,这些操作对于图像处理和分析非常重要。 图像梯度通常用于寻找图像中的边缘和轮廓。在OpenCV中,可以使用cv2.Sobel()函数计算图像的梯度…...

Spring Boot 解决跨域问题的 5种方案
跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。 一、跨域三种情况 在请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求: 协议不同,如 http 和 https…...

linux 3.13版本nvme驱动阅读记录一
内核版本较低的nvme驱动代码不多,而且使用的是单队列的架构,阅读起来会轻松一点。 这个版本涉及到的nvme驱动源码文件一共就4个,两个nvme.h文件,分别在include/linux ,include/uapi/linux目录下,nvme-core.c是主要源码…...

掌握RESTful API:规范与设计详解
前言 RAML (RESTful API Modeling Language) 和 OAS (OpenAPI Specification) 都是用于描述和定义 RESTful API 的规范。它们分别提供了不同的功能和优势。 RAML(RESTful API Modeling Language): RAML简介 RAML(RESTful API M…...

「更新」Topaz Video AI v4.0.3中文版
Topaz Video AI是一款功能强大的视频处理软件,它利用人工智能技术对视频进行智能分析和优化,旨在为用户提供高效、智能的视频编辑和增强功能。 首先,Topaz Video AI具备强大的视频修复功能。它可以自动识别并修复视频中的各种问题࿰…...

OpenAI最新官方GPT最佳实践指南,一文讲清ChatGPT的Prompt玩法
原文:Sina Visitor System OpenAI的官网发表万字GPT最佳实践指南,讲清Prompt提示词的原则和策略,这里是总结和全文翻译 原创图像,AI辅助生成 OpenAI的官网上刚刚发表一篇万字的GPT最佳实践指南,这份指南把写好Promp…...

树结构及其算法-用链表来实现二叉树
目录 树结构及其算法-用链表来实现二叉树 C代码 树结构及其算法-用链表来实现二叉树 以链表实现二叉树就是使用链表来存储二叉树,也就是运用动态分配内存和指针的方式来建立二叉树。 使用链表来表示二叉树的好处是节点的增加与删除操作相当容易,缺点…...

openwrt(三):在hostapd获取已关联的STA的MAC地址
在深度开发openwrt的hostapd模块的时候,有些功能的实现需要获取已关联的sta的mac地址,下面是相关的方法描述: 第一、在sta_info.c文件中,可以找到一个名为struct hostap_sta_info * hostapd_get_sta(struct hostapd_data *hapd, …...

为何袁世凯要把“元宵节”改为“上元节”?
网民把春节除夕日排除在法定假期之外的相关热议,在微博评论区部分已被关闭。官方学者的解释是:“回归传统。” 这就令人难免要回顾历史,并发觉只有在袁世凯称帝之后,才有过取消“元宵节”改为“上元节”的笑话,因为“元…...

python将图片序列保存成gif
这里用到的模块是imageio。用imageio.mimsave即可将图片序列保存成gif动态图。以下是本人编写的小实验: import cv2 import imageiopaths ["./images/0001.png", "./images/0002.png", "./images/0003.png", ...] frames [] for i…...

UE4用C++修改蓝图对象的属性值
if (auto Property FindFProperty<FStrProperty>(Class, "A")){Object->Modify();Property->SetPropertyValue_InContainer(Object.GetClass(), "OK");}...

供应商等级:一级、二级和三级供应商之间有什么区别
作为一名专业采购人员,你知道拥有一个可靠且具有成本效益的供应链有多么重要。确保供应链顺利运行的方法之一就是利用供应商分级。 什么是供应商分级? 供应商分级是根据供应商的绩效和对企业的重要性,对其进行分类的做法。 因此,…...

软考 系统架构设计师系列知识点之净室软件工程(3)
接前一篇文章:软考 系统架构设计师系列知识点之净室软件工程(2) 所属章节: 第5章. 软件工程基础知识 第5节. 净室软件工程 相关试题 1. 以下关于软件开发方法的叙述,错误的是()。 A. 对于较为…...

『VUE H5页面 - PDF预览』
使用依赖:vue-pdf实现需求:将 PDF url 地址 转换为本地页面预览 <template><div class"pdf-preview"><NavBar /><div class"container"><VuePdf v-for"i in numPages" :key"i" cla…...

使用lua-resty-request库编写爬虫IP实现数据抓取
目录 一、lua-resty-request库介绍 二、使用lua-resty-request库进行IP数据抓取 1、获取IP地址 2、设置请求 3、处理数据 三、代码实现 四、注意事项 五、总结 本文将深入探讨如何使用lua-resty-request库在爬虫程序中实现IP数据抓取。我们将首先介绍lua-resty-request…...

vue-admin-templete项目配置在手机上预览
参考文档: https://blog.csdn.net/qq_29752857/article/details/109802801想要在手机上预览本地打开的vue-admin-templete项目,首先要确保手机和电脑在同一网段。 参考文档:https://blog.csdn.net/m0_57236802/article/details/1315234471.查…...

服务号升级订阅号的流程
服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?首先我们要知道服务号和订阅号有什么区别。服务号侧重于对用户进行服务,每月可推送4次,每次最多8篇文章,发送的消息直接显示在好友列表中。订阅号更侧重于信息传…...

redhat7.4 安装lnmp操作环境
PacVim安装 https://baijiahao.baidu.com/s?id1601033830453371540&wfrspider&forpc 安装php https://www.cnblogs.com/alliancehacker/p/12255445.html https://blog.csdn.net/weixin_39709920/article/details/104274545 安装mysql https://www.cnblogs.com/laumian…...

Java判断是否有特殊字符串
//特殊字符串过滤private static String REGEX_RULE "[ _~!#$%^&*()|{}:;,\\[\\].<>/?~!#¥%……&*()——|{}【】‘;:\"”“’。,、?]|\n|\r|\t";pri…...

服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】
当然,你可以先按照IDEA搭建SSM框架【配置类、新手向】完成基础框架的搭建 步骤 1:设计并实现服务器端的用户数据库 在这个示例中,我们将使用MySQL数据库。首先,你需要安装MySQL并创建一个数据库以存储用户信息。以下是一些基本步…...

家用小型洗衣机哪款性价比高?公认好用四款内衣洗衣机推荐
小型的内衣洗衣机由于体积小巧,而且实用,非常适合没有太多空闲时间的上班族以及小型住户的使用。想要挑选到一款能够满足每日清洗需要,同时拥有便携与高效率的小型内衣洗衣机,也许会让你选择得有些烦恼。我们为大家挑选了一些性价…...

Sui zkSend,创建链接可直接发送SUI,快来体验吧
基于zkLogin和Sui的本机密码学构建,zkSend允许用户创建包含特定数量SUI的链接。该链接可以通过任何消息客户端发送,例如电子邮件和直接消息,甚至可以在媒体上转换成QR码。 使用zkSend发送SUI比复制和粘贴钱包地址,然后授权token转…...

SQL面试
#(1)请写出要查询员工J开头的名字其工号(EMPNO)及部门名称(DEPTNA)的 SQL语句SELECT e.emp,e.name,d.deptna FROM emp e left join dept d on d.deptno e.deptno where e.name like J%#(2)请写出要查询 Kevin 所在部门的部门代号(DEPTNO)及部门名称(DEPTNA)的 SQL 语句SELECT e…...

Elasticsearch(一)---介绍
简介 Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。 官网地址:Elasticsearch 平台 — 大规模查找…...