C++基本概念总结——引用和指针

【Qt笔记】1.VSCode搭建Qt运行环境 Qt6之后已经抛弃qmake,使用cmake。cmake相对qmake来说只有优点没有缺点。使用VSCode搭建完Qt的运行环境就能开开心心debug了.vscode需要使用的插件:2.Qt tools3.CMakec++插件可以不关注,缺啥都会提醒你.正常安装即可。 阅读详情

相对于C语言,引用是C++新增的概念。引用和指针有点相似,很容易混淆。

引用只是被引用对象的一个别名,不管被引用对象的大小是多少,其只占4字节的空间。

考虑下面代码,A1包含一个int类型的变量和一个B类型的引用,A2包含一个int类型的变量和一个B类型的变量。

class B{
	int a[4];
};

class A1{
	int i;
	B& m_b;
};

class A2{
	int i;
	B m_b;
};

在4字节对齐时,sizeof(A1)为8,因为i占4字节,引用占4字节。而sizeof(A2)为20,因为i占4字节,m_b占16字节。

 

在函数参数传递时,将传值的地方改为传引用或指针能提高性能的。考虑下面3个函数:

void f1(B b);
void f2(B& b);
void f3(B* b);

f1 是不推荐的,因为其要将整个B的对象进行传递。而 f2 和 f3 性能很好。


另外,引用在定义时必须赋初值,而指针无此要求。

	int i = 5;
	int &i_reference = i;

类的成员变量为引用时,必须在初始化列表中赋值。如下:

class A{
public:
	A(B& b) : m_b(b){}; // 在初始化列表中赋值
private:
	B& m_b;
};
SpringBoot 系列教程(二):SpringBoot使用Devtools实现热部署 1.devtools   spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。 2.项目搭建   本文是采用IDEA搭建的Spring Boot应用,通过spring-boot-devtools配置,可以支持修改java文件会自动重启程序,一些资源无需触发重启,... 阅读详情

相关推荐

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 570

【C语言】指针和引用的区别

指针和引用的区别 1.指针是一个实体,而引用是一个别名;在汇编上,引用的底层是以指针的方式实现的,定义一个引用变量,相当于就是定义了一个指针,然后把引用内存的地址写到这个指针里面,当通过引用变量修改它所引用的内存时,它先访问了指针里面的地址,然后在这个地址的内存里面对值进行修改 2.指针可以不初始化,通过赋值可以指向任意同类型的内存;但是引用必须初始化,而且引用一经引用一块内存...

PinkBananA_的博客 9502

学习记录——SIMPACK生成轨道谱文件的方法

生成轨道谱文件的方法,可以用于实测轨道谱导入和自制轨道谱导入仿真

weixin_51965897的博客 7798

指针 vs 引用:C/C++ 内存操控的双生核心机制深度剖析

摘要:指针与引用在C/C++中均实现间接访问,但存在本质差异。指针是独立对象,可空且可重绑定;引用是别名,必须初始化且不可更改。引用更安全,编译器可优化其内存占用。函数参数传递时,优先用引用表达必存对象,用指针表示可空场景。性能上二者无显著差异,选择应基于语义清晰性。指针关注内存地址,引用强调对象身份,理解这一哲学差异有助于编写更安全高效的代码。

聚焦前沿科技与硬核技术底层拆解,深耕 AI、量子计算、WebAssembly 等核心领域,拒绝碎片化科普。以通俗语言讲透复杂原理,用干货内容拆解技术逻辑,助力从业者吃透核心、把握趋势,每篇都是可落地的深度技术沉淀。 1334

【AI Agent 实战】OpenClaw 全面解析 + 全平台一键部署教程(本地 AI 智能体)

本文收录于 AI 智能体 & 自动化实战系列,手把手带你从零部署本地可控的 AI 执行助手关键词:OpenClaw、AI Agent、本地 AI 部署、自动化助手、Docker 部署

爱人爱己,风生水起 7815

【DAB收音机】DAB 认证介绍

DAB 认证ESTI 标准文档: ETSI 103461实际过认证时,需要根据产品的受众国家及区域,参考当地官方是否有国内认证协议。需要参考当地文档进行功能开发。例如:阿联酋地区用《UAE.S 5021 _ 2018.pdf》标准进行认证。ESTI 的DAB认证协议规定了家用和车载数字无线电的最低要求,及其对应的测试方法,是数字无线电认证标志规定的技术基础。本文以车载数字无线电接收器为例,进行部分DAB认证的介绍,详情请见官方文档。或联系博主获取DAB ESTI 103461的中文翻译资料。

qq_15271231的博客 1218

C++常考基础概念

一.常考C++基础概念 1.C++三大特性(封装、继承、多态) 封装: 隐藏类的属性和实现细节,仅仅对外提供接口, 封装性实际上是由编译器去识别关键字public、private和protected来实现的, 体现在类的成员可以有公有成员(public),私有成员(private),保护成员(protected)。 私有成员是在封装体内被隐藏的部分,只有类体内说明的函数(类的成员函数)才可以访问私有成员, 而在类体外的函数时不能访问的,公有成员是封装体与外界的一个接口, 类体外的函数可以访问公有成员

qq_52621551的博客 6967

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7113

c语言中变量的引用传递和指针

掌握了引用型变量和指针,才能深入掌握面向过程的函数调用机制。 引用型变量存储的是变量的地址,指针存储的也是变量的地址,所以本质上来说二者是一样的。 使用引用型变量,子函数中所有的操作会直接修改主函数中的实参,鼓励使用引用型变量。 编程的本质不就是改变量么?通过引用型变量和指针型变量可以让子函数直接改主函数中的变量,而不再需要为形参开辟内存。 //如果子函数在主函数下面,一定要先声明

千淘万漉 2万+

【WRF模拟】如何查看 WPS 的输入静态地理数据(二进制格式)?

如何查看 WPS 的输入静态地理数据(二进制格式)?

WW、forever的博客 632

【实战】LLaMA-Factory 如何做 LLM 的多轮对话微调

LLaMA-Factory 作为一个广受欢迎、易于使用的 LLM 微调框架,为开发者提供了便捷的途径来针对特定任务(包括多轮对话)优化模型。本文将深入探讨 LLaMA-Factory 如何支持多轮对话微调,涵盖其基本概念、数据准备、核心机制、评估方法等。简单来说,多轮对话是指包含两个或更多轮次(Turn)的交互过程,其中每一轮通常包含用户的一个输入和模型的一个输出。后续轮次的回应通常依赖于前面轮次的对话内容。模型需要理解并记忆对话历史。

kakaZhui的博客 1309

C++中一些重要概念区别

指针和引用的比较(p171)虽然使用引用(reference)和指针都可间接访问另一个值,但它们之间有两个重要区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这就是为什么引用必须在定义时初始化的原因)。指针和引用的比较虽然使用...

bluewater的专栏 1443

Allegro172版本DFM功能介绍

Allegro172版本提供了实时DFM检查的功能,让违反要求的地方实时以DRC的形式报出来,让加工不可加工因素在设计的时候同步避免。打开Constraint,选择Manufacturing, 所有DFM相关DRC都在这。把所有下面DRC开关(DFM,DFA,DFT)都选择on,选择OK。这个规则和物理和间距规则等等都没有关系,单独的一个加工规则。这些DRC大部分是正常的,正常的可以去修改规则来消除。等待DRC刷新,板子上会出现很多DRC,类似下图。下面介绍如何调用和产生DFM规则。一直往下点击next。

weixin_54787054的博客 1337

【C++基础概念——引用的基本概念以及和指针的区别】

引用是C++中的一种数据类型,它为一个已经存在的变量创建一个别名。引用:必须在声明时初始化,不能为null,一旦绑定不能改变,使用时不需要解引用操作符。指针:可以在声明时不初始化,可以为null,可以重新指向不同的对象,使用时需要解引用操作符。

XWWW668899的博客 632

温度PID控制PLC程序

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C++基本概念——指针和引用

本文主要对引用和指针进行区别

在地图上飞行 450

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C++ 指针和引用引用详解

C++ 指针和引用引用详解

qq_35320456的博客 2962

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【C++】引用和指针

引用类型实际上是给已存在的对象起一个新的名字,不会产生新的对象,所操纵的对象是同一个。

qq_34142812的博客 1938

【C++】指针和引用

期待您的一键三连!欢迎指正!

Guiat的博客 1163

C++中的指针与引用

摘要:本文深入解析C++中指针与引用的核心概念及使用技巧。指针作为存储地址的特殊变量,支持解引用、算术运算等操作,但需注意类型相关步长;引用则是变量的别名,必须初始化且不可更改。C++11引入的nullptr解决了NULL的歧义问题,提供类型安全的空指针表示。文章重点探讨了野指针的危害及防范措施,包括初始化策略、释放后处理和使用智能指针等最佳实践。最后对比了指针与引用的特性差异,并给出选用建议:优先引用,需要动态内存或表示空状态时用指针,推荐使用智能指针替代原始指针。掌握这些概念对编写高效安全的C++代码至

qq2745567641的博客 896

C++指针和引用回顾以及和java的对比

文章目录1 背景2 Cpp指针和引用实例3 和java对比 1 背景 研二的时候还用过C++写windows应用,快两年没用,再加上Java太好用,差不多快忘了C++最基本的指针和引用了,在此回归一下,并且和java一切皆对象的的引用/指针进行对比。 2 Cpp指针和引用实例 int a=1; int b=2; // C void swap(int *a, int *b) { in...

jeason_chan_zju的博客 233

C++中的指针和引用

前言: 文章中举了大量的例子,希望读者可以耐住性子好好读一下,相信会对指针和引用有底层的了解。 1. 指针 1. 概念:指针就是地址,指针变量是用来存放指针(地址)的变量。 2.* 作用:1.声明指针变量;2.表示指向(取出对应的普通型变量的值)。 3. 举例: 实例一: 代码: #include<iostream> using namespace std; i...

qq_36915686的博客 2013

C++中指针VS引用

复合类型 复合类型是指基于其他类型定义的类型,C++语言中主要有引用和指针两种复合类型。 引用 为对象取了另外一个名字,引用类型引另外一种类型。将通过声明符写出&amp;name的形式来定义引用类型,name是声明变量名。 #include&lt;iostream&gt; using namespace std; int main() { int ival=1024; int &am...

sinat_40766770的博客 597

2.5 指针和引用

指针是一种特殊的变量,具备一般变量的三个基本要素,但在类型和值上与一般变量有所不同。指针用于存放某个变量的地址值,因此,指针变量的数据值是某个变量在内存中的地址值。指针的类型是其所指向变量的类型,而不是指针本身的数据值类型。指针不仅可以指向各种类型的变量,还可以指向数组、函数、文件,甚至指向其他指针(即多级指针)。int a = 5;这里,定义了一个int型变量a,并初始化为5。定义了一个指针p,它指向int型变量a,其中&a表示变量a的地址值。定义指针时需要指定其类型,即在指针名前冠以,表示。

tang7mj的博客 1116

C/C++丨指针与引用学习笔记

《C 语言程序设计(第三版)》中国铁道出版社 第六章 指针与引用 粗糙笔记~ (本人的相关作业代码放在了github)

TheSumSt的经验站 1109

C++指针和引用的用法

一、基本知识 指针和引用的声明方式: 声明指针: char* pc; 声明引用: char c = 'A'                   char& rc = c; 它们的区别: ①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改

站在理想与平凡的路口 980

深入理解C++之一(指针和引用)

深入理解c++

qq_27520437的博客 571
上一篇: C++基本概念总结——公有继承和私有继承
下一篇: C++基本概念总结——静态成员
林 文
博客等级 码龄18年 14粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值