c++的数组与指针

【018】指针的指针: C++ 指针数组、数组指针深入解析 指针数组和数组指针是C++中比较常见的两种概念,它们都与数组和指针有关。指针数组:指针数组是一个数组,其中每个元素都是一个指针。数组指针本质上是指针变量;保存的是数组的首地址。数组指针+1跳过的是整个数组。 阅读详情

前记:

stage 1:最开始以为数组和指针是可以等价的,(int  a[4],*b=a; 用a[1]和b[1]访问的是同一个元素)。因此就自然而然地以为高维数组等价于高级指针

stage 2:开始听到说数组与指针的区别,区别之一在于数组名是不可更改的,即上述的a更像一个const point(指针常量),可以修改所指向的值但不能修改自己的值。

stage 3:碰到新问题:将多维数组名作为参数传递到形参为多维指针的函数时,无法编译通过。简单查了下说数组的退化,没深究

stage 4:(now) 看了几遍c++ primer,趁下午有空总结了各种情况,结合文中提到的内容,总算理清了数组与指针的关系。


几个例子:

1.int  a[4];  a[2]为int型,a为int *

2.int a[4][5];     a[2]类型为int[5],a类型为int (*)[5] ——指向数组的指针,数组包含5个int

3。   2中,   &a[2] 的类型与a的类型一致

4. 换句话说,[]操作符是先对指针进行加法操作,再解引用

正文:

关键:

1. 不取地址时,数组名表示指向数组第一个元素的const指针(from c++ primer)

2.取地址时,数组名的结果为数组的指针。


总结:

有多维数组int a[x0][x1]...[xn],则a[a0][a1]...[am]的类型为 int (*)[xm+2]...[xn]

规律:      inta[x0][x1][x2]...[xm][xm+1][xm+2]...[xm]

类型为int (                    *                          )[xm+2]...[xm]

Chromatix_AEC—深入解析曝光表配置与传感器参数计算 本文深入解析高通Chromatix AEC模块中的曝光表配置与传感器参数计算,详细介绍了自动曝光控制(AEC)的核心概念、首行曝光时间计算、行时间与曝光模式对比、帧率计算逻辑以及曝光表高级配置技巧。通过实战案例展示如何优化传感器参数联调,帮助开发者掌握Chromatix工具在摄像头系统中的关键应用。 阅读详情

相关推荐

Plant simulation、Flexsim、Automod、Emulate3D、VisuaComponent仿真软件对比

E3D在行业内以展示效果好,入门阶段易学易用人机界面友好,电控仿真连接方便不需要借助其他第三方软件,E3D平台开放度较高用户DIY程度强,数据分析功能针对要评定对象的KPI的可根据项目或者使用者需求进行评定。3.支持导入导出多种格式的文件,比如dwg、dxf、fbx、obj、3ds、step、stp、iges、skp、stl、wrl、 bmp 等等。3.软件自带模型组件库程序代码开放,用户可以引用、修改、拷贝,按照自己的逻辑修改模型,或者创建模型并保存到组件库与别人共享。3. 支持导出布局图片。

qq_43342303的博客 3580

c/c++ 如何定义数组的指针

#include<stdio.h> #include<stdlib.h> #include<string.h> //如何定义数组的指针(三种方式) //先定义出数组的类型,再通过类型创建数组的指针 void test01() { int arr[] = {1,2,3,4,5}; typedef int(ARRAY_TYPE)[5]; // ARRAY_...

weixin_37885641的博客 3233

鸿蒙子系统解读-分布式软总线子系统初步研究(下)

鸿蒙子系统解读-分布式软总线子系统初步研究(下) 本文作者:江苏润和软件股份有限公司 郎建中 3.2. 数据传输 上一节我们看了PublishService()函数的代码实现过程。被发现端发布服务后,软总线回调发布成功的函数中,被发现端需要使用CreateSessionServer()来创建会话的服务器等待发现端的连接创建会话。下面我们就来分析CreateSessionServer()函数的实现过程。 数据传输部分的代码位于foundation/communication/services/softbus

weixin_47070198的博客 3089

C++基本概念-指针

文章目录指针变量与指针定义指针变量 指针 按照变量地址存取变量值得方式称为直接存取方式,而将变量iii的地址存放在另一个变量中,称为间接存取方式。指针的概念就由此而来,我们希望定义一种特殊的变量,让它专门用来存放地址。 一个变量的地址称为该变量的指针。 如果有一个变量是专门用来存放地址的,则称为指针变量。 变量与指针 变量的指针就是变量的地址。用来存放变量地址的变量是指针变量。 定义指针变量 int *pointer_1,*pointer_2;//定义指针变量pointer_1和pointer_2 定义指

m0_43422714的博客 1556

告别Keil!用VSCode+PlatformIO玩转STC单片机(附自动下载配置)

本文详细介绍了如何从Keil迁移到VSCode+PlatformIO进行STC单片机开发,包括环境搭建、自动下载配置等实用技巧。通过对比传统IDE与现代工具链的差异,展示了VSCode+PlatformIO在代码编辑体验、跨平台支持和开发效率上的优势,帮助开发者实现更流畅的STC单片机开发流程。

weixin_27252001的博客 458

CentOS 7环境下GLPI与OCS Inventory资产管理系统集成部署指南

本文详细介绍了在CentOS 7环境下,如何将GLPI与OCS Inventory两大开源工具进行集成部署,构建自动化资产管理系统。指南涵盖环境准备、核心服务安装、Web界面初始化、OCS插件配置及资产同步实战,帮助运维人员实现IT资产的自动发现、统一管理与可视化,大幅提升资产管理效率。

weixin_29274337的博客 327

C++系列十二:指针数组

指针数组(Array of Pointers)是一种特殊的数组,它存储的是指针,而不是实际的数据值。每个元素都是一个指针,可以指向一个同类型的内存地址。通过指针数组,我们可以灵活地操作和访问动态分配的内存空间。

聚集机器学习、信息安全 4506

10X Genomics单细胞数据分析实战:从FASTQ到UMAP可视化的完整流程

本文详细介绍了10X Genomics单细胞数据分析的完整流程,从FASTQ原始数据处理到UMAP可视化。通过Seurat工具包实现数据质量控制、标准化、降维聚类和细胞注释,特别适合生物信息学新手学习。文章包含可复现的代码示例和常见问题解决方案,帮助研究者快速掌握单细胞测序数据分析的核心技术。

weixin_30952535的博客 535

C++指针数组详解

数组名都表示第一个元素的地址,比如int a[3],则a表示&a[0] 指针数组也是数组,它与普通数组区别是两者元素不一样 int数组每个元素都是int型,数组名a对应首元素a[0]的地址,因此数组名a是int*型 而指针数组,比如int *p[10],其每个元素都是int*型,数组名p对应首元素p[0]的地址,因此数组名p是int**型 int *是指向int型数值地址的指针 ...

Mr.horse的博客 3466

LVGL嵌入式GUI工程化架构与多窗口实践

嵌入式GUI开发中,LVGL作为轻量级图形库,其核心价值在于高效渲染与事件驱动机制。理解LVGL的对象树模型、资源管理机制(如RAW图像、静态字体)和屏幕生命周期,是构建稳定界面的基础。结合FreeRTOS等实时操作系统,可实现低功耗、高响应的交互体验。典型应用场景包括智能电表、HMI人机界面、工业控制面板等对内存敏感、需长期运行的设备。本文以微信式多窗口架构为范例,深入解析LVGL工程化落地的关键路径:分层目录结构、窗口模块封装、状态机式登录逻辑、TabView多页导航及图表/仪表盘动态可视化,覆盖从资源

weixin_36001279的博客 88

全志V3S嵌入式驱动开发(uboot移植)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发

嵌入式-老费,一个分享专业嵌入式知识的blog 2818

C/C++数组指针

C/C++数组指针

Catherinemin的博客 3948

ReAct 智能体 Agent:架构解析与实践拓展

ReAct 智能体 Agent 凭借其推理与行动协同的独特架构,在众多人工智能应用场景中展现出巨大的潜力。从智能办公到教育辅导,从智能家居到工业物联网,ReAct 智能体通过精准推理和高效行动,为用户提供了更加智能、便捷的服务体验。然而,在实际应用过程中,仍面临工具调用安全、模型持续学习、多智能体协作管理以及性能优化等多方面的挑战。通过合理的策略和技术创新,如强化工具审核机制、构建持续学习框架、设计高效协作协议和采用性能优化手段,我们有望逐步克服这些挑战,进一步提升 ReAct 智能体的性能和可靠性。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1688

【C++】二维数组的行指针和列指针

在C++中,数组与指针有密切的关系。任何通过数组和下标实现的表达式可等价地通过指针和偏移量实现。下面首先介绍一维数组与指针的关系,之后介绍二维数组的行指针和列指针。

zzy979481894的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【重学C++】【指针】详解让人迷茫的指针数组和数组指针

是否你也和我一样,到现在也分不清指针数组和数组指针?这篇文档带你重新认识它们,彻底认清它们。

同学小张的博客 2143

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CPP-基础:C/C++数组名与指针的区别

2005-08-23 08:36 来源:天极网 作者:宋宝华 责任编辑:方舟·yesky 引言   指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/...

dixiongbi7761的博客 195

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++面试题-指针-指针数组与数组指针

C++面试题-指针-指针数组与数组指针 问:int (*p)[n]与int *p[n]的区别? 答: int (*p)[n]是数组指针,指向某n个元素所组成的整块的数组,返回值是整型指针类型的。 int *p[n]是指针数组,指向数组里面的每个元素,即p[0]指向第一个元素,p[1]指向第二个元素,以此类推,p[n-1]指向第n-1个元素,返回值是整型的。   问:下面代码的输出结果是什...

《好好先生》专栏 3754

C++指针与数组

在C++编程中,指针和数组有着密切的联系,它们在很多方面相互关联且可以相互转换。理解指针与数组之间的关系对于高效地操作数组、实现算法以及管理内存等方面都非常重要。指针和数组在C++中关系紧密,掌握它们的关系可以帮助我们更灵活地操作数组,实现更高效的算法和数据结构。无论是使用指针访问数组元素、动态分配数组内存,还是在函数中传递数组指针,都需要注意指针的正确使用和内存管理。

𝓓𝓸𝓶𝓲𝓷𝓪𝓽𝓲𝓷𝓰 𝓐𝓵𝓵 𝓣𝓱𝓲𝓷𝓰𝓼 1336

c++数组指针和指针数组的深入理解

一:指针数组 写法:int* p[10];//*p未用括号括起来,说明[]的优先级高,p先和[]结合成数组,在被前面的*定义为一个指针类型的数组。 顾名思义:就是一个指针类型的数组,既然是指针类型的数组,所以数组中存放的元素就是一个个指针,这就决定了我们不能随便为其赋值。废话少说,上代码。 tip1.透过代码看本质。 int* p[10] = {1};//这样为其初始化就会报错,因为数组里面的元素全是指针类型,不能用整型为其初始化。 int* p[10] = { NULL };//这样做..

admin的博客 7083

C/C++的各种指针或指针数组

C/C++的各种指针或指针数组 以下内容整理自知乎IceBear的回答,在此再次表示感谢。 最简单的例子,定义一个数组: int a[N]; 数组名 a 就是夹在 int 跟方括号之间 再来一个,指针数组: int (*p)[N] 也就是一个指针变量 p,它指向的东西是一个 int[N] 的数组 那举一反三,* 号改成 & 号: int (&a)[N] 这就是对一个数组的引用,引用的别名就是 a 当然,上一个例子里是 C++ 的,再举一个 C 的例子, typedef int i

windSnowLi 1万+

【C++】数组指针、指针数组与二级指针

数组指针、指针数组与二级指针数组指针与指针数组数组指针指针数组二级指针二级指针的特性指向指针数组的数组指针与二级指针测试代码 数组指针与指针数组 数组指针是指针,意为指向数组的指针; 指针数组是数组,意为数组内部存储着指针的数组。 数组指针 数组指针具有如下特性1: 数组指针用于指向一个数组; 数组名是数组首元素的起始地址,但不是数组的起始地址,通过取地址符&作用域数组名可以得到数组的起...

小黑先森的博客 1502

C++:指针数组与数组指针

指针数组是一个数组,其中的每个元素都是指针。这些指针可以指向不同的内存地址,通常用于存储一组相同类型的指针。数组指针是一个指针,它指向数组的首地址。它本身是一个指针,但指向的内容是一个数组对象。指针数组常用于需要动态管理一组指针的场景,而数组指针则用于处理数组的整体,特别是在函数参数传递和多维数组的处理中比较常见指针数组是一个数组,其中的每个元素都是一个指针。具体来说,它是一个存储多个指针的数组,数组的每个元素指向一个对象或者数据。其中,<type>*表示数组元素是指向某种类型的指针,size。

weixin_44284128的博客 737

C/C++数组指针和指针数组

数组指针和指针数组的区别 指针数组:首先它是一个数组,每一个元素都是一个指针。 数组指针:首先它是一个指针,它指向一个数组。它是"指向数组的指针"的简称。 运算符的优先级关系:() &gt; [] &gt; *   数组指针(也称行指针)例如:int (*p)[n];根据优先级,先看( )内,p是一个指针,后面的[ ]又说明了p是一个指向数组的指针,由于前面的int,所以p是一个指向 i...

Tyler_Zx的博客 4204

cpp中指针、数组和指针算法

指针和数组基本等价的原因在于指针算法和cpp内部处理数组的方式。

liguandong 1302

c++二维数组、二维指针、数组指针、指针数组

二维数组 1.定义: //方法一 int arr1[2][3]; //方法二 int arr2[2][3] = { {1,2,3},{4,5,6} }; //方法三 int arr3[2][3] = { 1,2,3,4,5,6 }; //方法四 int arr4[][3] = { 1,2,3,4,5,6 }; 2.数组名称 作用:查看二维数组所占内存空间大小;获取二维数组首地址。 int arr[2][3] = { {1,2,3},{4,5,6} }; cout << "二维数组所占内存大小:

weixin_44190648的博客 2445

C++ 指向数组的指针

C++ 指向数组的指针 如果您对 C++ 指针的概念有所了解,那么就可以开始本章的学习。数组名是一个指向数组中第一个元素的常量指针。因此,在下面的声明中: double balance[50]; balance 是一个指向 &amp;balance[0] 的指针,即数组 balance 的第一个元素的地址。因此,下面的程序片段把 p 赋值为 balance 的第一个元素的地址: double *p...

alan711的博客 3047
上一篇: 关于c++多态性实现的理解过程(给自己看的总结,比较跳跃)
下一篇: svo中的shi-tomas score
HelloElite
博客等级 码龄14年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值