c++ 指针和引用的区别

[C++指针和引用 cpp] -> [C++中指针和引用的区别及使用场景详解] 在C++语言中,指针和引用是两个重要的概念,虽然它们都可以用来进行变量的传递和操作,但是在使用上还是有很多的差别。引用是一个已经存在的变量的别名,通过引用可以直接访问该变量,并且使用起来比指针更加方便。类成员的访问:指针和引用都可以用于访问类成员,不过在实际开发中,建议使用引用来访问类成员,因为引用更加直观。总之,指针和引用都是C++中非常重要的概念,掌握它们的区别和使用场景对于C++开发人员来说是非常必要的。定义形式不同:指针使用“*”符号来定义和操作,而引用使用“&”符号来定义和操作。 阅读详情

参考链接:https://www.cnblogs.com/dingxiaoqiang/p/8012578.html

指针和引用的相同点和不同点:

★相同点:

●都是地址的概念;

指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。

★不同点:

●指针是一个实体,而引用仅是个别名;

●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;

●引用没有const,指针有const,const的指针不可变;(具体指没有int& const a这种形式,而const int& a是有     的,  前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变)

●引用不能为空,指针可以为空;

●“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;

●指针和引用的自增(++)运算意义不一样;

●引用是类型安全的,而指针不是 (引用比指针多了类型检查)

C++指针和引用及区别 1.变量 首先最重要的,variable的定义,当你申明一个变量的时候,计算机会将指定的一块内存空间和变量名进行绑定;这个定义很简单,但其实很抽象,例如:int x = 5; 这是一句最简单的变量赋值语句了, 将5赋值于名字叫做x的内存空间,其本质是将值5赋值到一块内存空间,而这个内存空间名叫做x。 变量在内存中的操作其实是需要经过2个步骤的: 1.找出与变量名相对应的内存地址。 2.根据找到的地址,取出该地址对应的内存空间里面的值进行操作。 2.指针 指针的特殊之处在于:指针变量相对应的内存空间存储的值 阅读详情

相关推荐

CAN收发器选型避坑指南:TJA1051T与TJA1051T/3的硬件兼容性问题实录

本文详细解析了CAN收发器TJA1051T与TJA1051T/3的硬件兼容性问题,通过实测数据和故障案例揭示了VIO引脚的关键差异及其对系统的影响。提供从选型到验证的完整防坑方案,帮助开发者避免常见设计错误,确保CAN总线通信的稳定性。

weixin_42715608的博客 460

C/C++引用和指针的区别

为什么C/C++语言使用指针? 答案:①一方面,每一种编程语言都使用指针。不止C/C++使用指针。 每一种编程语言都使用指针。C++将指针暴露给了用户(程序员),而Java和C#等语言则将指针隐藏起来了。 “Everything uses pointers. C++ just exposes them rather than hiding them,” It's easier to gi...

smartDMer的专栏 2万+

告别迷茫!手把手教你用ArcGIS+GTB搞定生态源地MSPA分析(附避坑指南)

本文详细介绍了如何使用ArcGIS和GTB进行生态源地MSPA分析的全流程,包括软件安装、数据预处理、参数设置、结果可视化和常见问题排查。特别针对ArcGIS和GTB组合使用时的常见问题提供了避坑指南,帮助研究者高效完成生态规划任务。

weixin_30756499的博客 436

c++ 引用传参和指针传参的区别

概念 指针从本质上讲是一个变量,变量的值是另一个变量的地址,指针在逻辑上是独立的,它可以被改变的,包括指针变量的值(所指向的地址)和指针变量的值对应的内存中的数据(所指向地址中所存放的数据)。 引用从本质上讲是一个别名,是另一个变量的同义词,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化(先有这个变量,这个实物,这个实物才能有别名),而且其引用的对象在其整个生命周期中不...

wrdasj的博客 1万+

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4691

Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程

vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合

🏆 前端领域优质创作者 1万+

【C++】指针和引用的区别及指针传递和引用传递的区别

一、指针和引用的区别: 1.指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;引用和原来的变量实质上是同一个东西,只不过是原变量的一个别名。 2.指针的值在初始化后可变,即指向其它的存储单元;引用只能在定义时被初始化一次,之后不可变 3.指针有const,常指针不可变;引用没有const(具体指没有 int& const a这种形式,而有const int&am...

Jacky_Feng的博客 4677

YOLOv10改进,YOLOv10添加DICAM,用于水下图像增强模块,以提高朦胧水下图像的质量、对比度和色偏

在水下环境中,成像设备会出现水浑浊、光衰减、散射和颗粒问题,导致图像质量低、对比度差和彩色图像有偏差。这给使用传统视觉技术进行水下状态监测和检查带来了巨大挑战。近年来,水下图像增强因其在提高当前计算机视觉任务在水下目标检测和分割中的性能方面发挥着关键作用而受到越来越多的关注。由于主要从自然场景构建的现有方法在提高色彩丰富度和分布方面存在性能限制,作者提出了一种新颖的基于深度学习的方法,即 Deep Inception 和 Channel-wise Attention Modules (DICAM),以提高朦

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 482

C++中引用和指针的区别

C++中引用和指针的关键区别: 定义:指针存储变量地址,引用是变量的别名 空值:指针可为nullptr,引用必须绑定有效对象 赋值:指针可重定向,引用一旦绑定不可更改 内存:指针占用独立内存空间(4/8字节),引用不占额外内存 安全性:引用更安全(无空指针风险),指针更灵活(支持算术运算) 用途:指针用于动态内存和数据结构,引用适合函数参数传递和返回值 优先使用引用确保安全性,需要动态管理或可选值时使用指针。

m0_62479378的博客 1291

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

868

ANSYS WORKBENCH——参数化建模以及参数优化(结果导出为Excel)

目录 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 ​ 注:印记面的创建 5、模型属性设置 注:设置优化目标 6、回主界面,选择direct optimization模块 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 至此参数化建模就已经完成啦 注:印记面的创建 印记面一般是一个虚拟的区域,参与实际的网格划分,但是只是由于载.

python_AI_fans的博客 1万+

Cpp指针和引用的区别

指针 #include <iostream> using namespace std; int * mac() { int *i=new int(10); return i; } int macp(int *n) { cout<<*n<<endl; } int main() { int i=10; int *p=&i; int *pp=mac(); printf("%d\n",*p); printf("%d\n",*pp); return

weixin_43572257的博客 363

OpenClaw + Antigravity + 飞书完整部署教程

在 Linux 服务器上部署 OpenClaw,使用 Antigravity 本地代理 AI 模型,并接入飞书实现 24 小时在线 AI 助手。

Maynor的博客 1788

c++之指针和引用作为函数参数传递时的区别

之前写过c++之值传递、引用传递、指针传递,今天再单独区分一下指针和引用作为函数参数传递时的区别。 本文参考浅谈C++中指针和引用的区别 一、指针作为函数参数传递时 1、类似于值传递,传入函数的指针只是原指针的一个拷贝,所以此时是存在两个指针,同时指向一个内存空间(同时指向原对象) 2、当在函数中不改变拷贝指针的指向时,修改指针的值,就相当于修改原指针指向的对象 3、当在函数中改变拷贝指针的指向时,只是改变了拷贝指针的指向,不改变原指针的指向,所以不改变原指针指向的对象。 #include<iostr

weixin_42579072的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C++类的对象和类的指针的区别、指针和引用的区别

转自:https://blog.youkuaiyun.com/liulina603/article/details/47290963 #include <iostream> #include <string> using namespace std; class Student { public: static int number; string na...

martinkeith的博客 4348

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

c++:指针和引用的区别

有时候在C++工程中可能需要将某些函数按照C的风格来编译,在函数前加extern "C",意思是告诉编译器, 将该函数按照C语言规则来编译。比如:tcmalloc是google用C++实现的一个项目,他提供tcmallc()和tcfree 两个接口来使用,但如果是C项目就没办法使用,那么他就使用extern “C”来解决。 ...

须知少日拏云志,曾许人间第一流。 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++指针和引用的区别

#C++指针和引用的区别 1. 指针和引用的定义和性质区别 指针:本质是变量,这个变量存储的是指向存储单元的地址, 需要分配空间。 引用只是变量的别名,不需要分配空间。 指针在定义的时候不一定要初始化,并且指向的空间可变; 引用定义的时候必须初始化,并且不能改变(引用的值不能为NULL)。 有多级指针,无多级引用;有const指针,无const引用。 指针的自增为指向下一个空间,而引用是引用的变量加1 sizeof引用是变量(对象)的大小,而sizeof指针是指针本身的大小。 引用访

weixin_39747451的博客 119

C++ 指针和引用的区别

本文详细对比了C++中指针和引用的核心区别。指针是存储内存地址的变量,支持重新赋值、空值和算术运算;引用是变量的别名,必须初始化且不可更改绑定。关键差异包括:指针可空、可重定向、支持多级间接访问,而引用语法更简洁安全。使用场景上,指针适合动态内存和可选参数,引用适合函数参数传递和运算符重载。现代C++推荐优先使用引用,但指针在底层操作中仍不可或缺。正确理解二者的特性能够帮助开发者编写更高效安全的代码。

KodeScape 984

c++指针和引用区别

说道C++的指针,很多人都很头疼,也很confuse。经常把它和变量名,引用(reference)等混淆,其实这最主要的原因是很多程序员对于基本知识的掌握有问题,从而导致的很多基本概念的混淆。本文就是从最基本的概念讲起,着重分析和比较指针和引用。主要从以下几个方面着重的讲解: 1. 变量(variable)的表现形式; 2. 指针的结构和原理; 3. 引用的结构和原理; 4. 指针在Array中的应用和注意事项; 5. 指针不能dereference的几种情况; 一:变量的形式 说道变量,很多

识物专栏 346

C++ 引用和指针有什么区别?

引用和指针有什么区别? 本质:引用是别名,指针是地址,具体的: ①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。 ②从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域,因为引用声明时必须初始化,从而指...

码小余の博客 1242

C++小课堂——引用和指针的区别

本文介绍了C++的基础知识之一,同时也是容易混淆的地方——引用和指针的区别

New_Teen的博客 764

C++中引用和指针的区别(AI)

在C++中,引用(references)和指针(pointers)是两种用于间接访问和操作数据的方式,但它们在使用和特性上有一些显著的区别。

exotic_world的博客 589

C++中,引用和指针的区别是什么?

目录 1. 引用的底层实现方式 1.1 从对象出发对引用和指针的理解 2. 引用与指针的区别 2.1 2.2 2.3 2.4 引用是C++引入的重要机制(C语言没有引用),它使原来在C中必须用指针来实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢? 1. 引用的底层实现方式 引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未解释引用的实现方式。常见错误说法是“引用”自身不是一个变量,甚至编译器可以不以

W_H_M_2018的博客 548
上一篇: c++ const
下一篇: leetcode binary-tree-maximum-path-sum
kotomi_du
博客等级 码龄10年 5粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值