C++引用-指针的应用与常引用

⚡【C++要笑着学】(5) 引用:引用的概念 | 引用的三大特性 | 引用的应用 | 传值返回 | 传值和传址效率分析 | 引用和指针的区别 | 常引用 | 权限的放大和缩小 | 常引用做参数 本章将对C++的基础,引用部分的知识进行讲解。有些地方为了能够加深理解,我们会举几个比较有意思的栗子,在讲解的同时会适当的整活。 阅读详情

1 指针应用
struct MY_Struct{
	char name[64];
	int age;
	
};
int  QuotePointer(MY_Struct* &swap)
{
	 //swap = (MY_Struct*)malloc(sizeof(MY_Struct));
	swap = new MY_Struct;
	if (swap == NULL)
		cout << "mallloc erro----->" << endl;
	swap->age = 88;
	return 0;
}
void Free_p(MY_Struct* &swap)
{
	if (swap == NULL)
		return;
	delete swap;

}

由于,在主函数 QuotePointer中直接传递的是引用指针,在释放函数Free_p中同时也传入同一个引用指针,所以这里释放的其实就是在 QuotePointer用new关键字分配的空间。

2 常量引用

 1)常量引用的初始化

引用常量就规定不可以用引用常量去修改初始值

两种方式:

/*常量引用*/
int main()
{
	/*第一种初始化方式:用变量初始化引用,让变量拥有了只读属性*/
	int va=100;
	const int &vb = va;
	cout << "vb=" << vb<<endl;
	/*第二种初始化方式:用字面量初始化常量引用*/
	/*int &vc = 41;这里的方式不可行,因为引用是为内存取别名,这里41只是字面量所以不在内存区域,
	所以无法做引用的右值*/
	const int &vc = 41;/*可行,但不可以试图用修改vc的值*/
	cout << "vc= " << vc << endl;
	system("pause");
	return 0;
}
2)常量应用做函数参数:只能读取参数的内容但不能修改参数的值

void ReadStudent(const MY_Student va)
{
	cout << "va.age=" << va.age << endl;
	//va.age = 200;/*提示va必须是可修改的值,因为va具有const属性,所以不能被修改*/
}
int main()
{
	MY_Student stu;
	stu.age = 110;
	ReadStudent(stu);
	system("pause");
	return 0;
}




AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则 本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。 阅读详情

相关推荐

Bentley ORD(openroads designer) 二次开发(BIM)第七节 在ORD SDK中调用MicroStation SDK

从课程刚开始的时候我们就通过学习,了解了ORD的开发是基于MicroStation的,ORD SDK的接口发布的时候也对MicroStation SDK也做了一次发布。这一章将以我们对ORD SDK知识的了解为基础,使用ORD SDK的接口读取道路几何信息、计算桩号,然后再使用MicroStation SDK 读取地形数据和计算投影点的位置,并创建一组方柱形状的Soild。计算方柱底部坐标要经过两大步骤,通过路线的桩号及偏移距离去定位方柱的平面位置,通过方柱的平面位置计算数字地面模型上的投影点的坐标。

chen286990651的博客 882

“指针常量引用” , int const*,const int* ,const int*& ,int* const&区别详解

“指针常量引用” , int const*,const int* ,const int*& ,int* const&区别详解

qq_43041053的博客 2701

unity shader 后处理实现水墨风格渲染「Low Poly 」变「水墨画 」

水墨风格渲染 这次学校的比赛打算做一个中国古代背景的游戏,所以尝试做了水墨风格的渲染。 主要按以下四步来实现的效果: 根据色调和饱和度调整饱和度。 对图像进行模糊 水墨风格的物体边缘 物体内画笔笔触的模拟 接下来我分别就这四步依次展开说明: 调整饱和度 这里我使用Post-Processing Stack 的Color Grading 来调节饱和度,通过使用Grading Curv...

九级铁甲蛹的博客 1万+

C++之引用、指针引用、常引用

假设有变量;int &a = b;//a指向b,即a是b的另一个名字int &a;引用必须要被初始化那申明引用为何一定要初始化呢?因为引用只是已存在变量的别名,我们在初始化变量的时候是将初始化拷贝到新建的对象中,然而在声明引用的时候,需要将引用和它的初始值对象一直绑定,因为引用是不可能绑定到另一个对象上的,因此必须初始化。并且引用的定义是可以在一条语句中定义多个引用的,其中每个引用都是以开头,如下:那么给定义引用之后获取到的值、地址又是什么样的?

qq_42595610的博客 897

别光看教程了!手把手带你用STM32F103C8T6最小系统板点亮第一个LED(附完整电路图)

本文详细介绍了如何使用STM32F103C8T6最小系统板点亮第一个LED,从硬件连接到软件开发环境搭建,再到编写和下载程序,手把手教你完成STM32入门的第一步。适合初学者快速上手STM32开发,附完整电路图和代码示例。

weixin_28678831的博客 196

别再死磕DH参数了!用MATLAB Robotics Toolbox + SOLIDWORKS搞定六轴机械臂仿真(附避坑指南)

本文详细介绍了如何利用MATLAB Robotics Toolbox和SOLIDWORKS进行六轴机械臂仿真,避免常见的DH参数错误和模型导出问题。通过实战指南和避坑技巧,帮助工程师实现从三维建模到运动学仿真的无缝衔接,提升仿真效率和准确性。

weixin_27066963的博客 395

指针和引用(最最通俗易懂)

指针是什么? 有什么用? 有什么优点? 在这里你都能找到答案。本文纯手打,非常适合新手小白 概念 一个变量有两个自身属性——值和地址。正如一个保险箱,既有它里面存放的个人物品,比如一百块钱,又有它自身所在的位置,比如0x0022号。 而指针也是一种变量,不过该变量是一个包含另一个变量地址的变量,仅用于指向别的东西。指针代表的这个保险箱,它里面不再存放个人物品,而是一张纸条,上面写着另一个保险箱的地址0x3212号,你可以根据这个地址找到甚至修改你的个人物品。 那么指针到底有什么用呢? C++中函

zw1998blue的博客 2249

零基础做完YOLOv8船只检测系统:HRSC2016数据集 + 完整UI,稳过答辩

亲爱的同学,通过这篇教程,你已经掌握了“基于YOLOv8的HRSC2016微小船只检测系统”从数据集处理、模型训练到Tkinter界面开发的全流程。这个课题既贴合“海事智能化”的产业战略,又涵盖了“目标检测、深度学习、界面开发”等多个毕设评分点,非常适合作为计算机或海事工程专业的毕业设计。在实践中,你可能会遇到“海面背景复杂导致船只漏检”“微小船只识别精度不足”“UI与模型推理同步卡顿”等挑战——别担心,这些都是技术成长的必经之路。

FJN110的博客 108

C++(常)引用,const,指针引用

一、引用 1.基本引用语法/*变量引用*/ int i = 10; int & s = i;//声明引用变量s,引用了i,则后续对s或者i变动都会导致s和i的值变动。此时s和i等价 //声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&s与&i相等。2.

阅微草堂的博客 1344

[毕设项目-MCP+ENSP]一句话搞定ENSP自动化:MCP + LLM实战(架构图、工具清单、踩坑全解)

用 MCP + LLM 把“人话”变成对华为 ENSP 的安全自动化操作,三款工具覆盖配置/查询/落盘,配套架构、实战与排坑清单。

逐梦苍穹的博客 2545

基于PCL的电力线点云提取与分割实现

本文基于PCL库实现电力线点云提取与分割,包含6个核心处理阶段:文件读取与结果文件夹创建、高程滤波分割候选点云、欧式聚类去噪、电力线分段提取、球形邻域搜索补全点云、最终分割与可视化保存。通过PCA计算点云线性特征(阈值0.91)筛选电力线点,采用欧式聚类(容忍度3.0)去除噪点,并针对不同规模聚类差异化设置球形搜索半径(4.0/6.0)补全点云。最终通过欧式聚类分割并可视化带颜色点云。算法对高程滤波阈值、聚类参数等具有敏感性,需根据点云特性调整优化。

weixin_45196569的博客 193

C++-Record10—指针的引用及常量引用

指针的引用及常量引用

恋蛩音的博客 314

(汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理

SLAM 与深度学习相结合的工作当前主要体现在两个方面,一方面是将语义信息参与到建图、位姿估计等环节中,另一方面是端到端地完成 SLAM。针对建图的工作一方面是利用几何信息进行稠密重建,另一方面很多工作利用语义信息达到了很好的语义重建效果,三维重建、SFM。动态 SLAM 也是一个很值得研究的话题,这里不太好分类,很多工作用到了语义信息或者用来三维重建,收集的方案相对较少。优化可能是 SLAM 中最难的一部分了吧 +_+ ,一般都是直接用现成的因子图、图优化方案,要创新可不容易。

熊猫小妖的AI世界 7870

C++的引用、指针与引用的关系、函数的传应用和传值返回、常引用、临时变量的有常性(重要)

有多级指针,但是没有多级引用,因为引用是变量的别名,​编译后通常被实现为自动解引用的指针。但语言规范强制引用必须初始化且终身绑定单一对象,无法重新绑定或形成引用链。因此,int&&在C++中表示右值引用而非多级引用

m0_73975164的博客 1111

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

linux下c++ lesson2 const和引用

1-const.cpp #include <iostream> using namespace std; void f() { #define b 100 const int c = 200; } int main() { const int a = 1; //C++中,const修饰的是常量,存放在符号表中 //a++; int *p = (int *)&am...

Tyeat的博客 203

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C++ 引用总结

如果本身是变量,可以拿普通引用或者常引用如果本身是常量,只能常引用。

ljy的博客 720

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

小白初学C++的引用

目录: 引用的定义 引用的应用 引用的提高 常引用 引用的本质 1.引用的定义 先来说说何为引用,及就是引用的定义。我看到的一些书上给出的定义是:变量名,本身是一段内存的引用, 即别名(alias)。此处引入的引用,是为己有变量起一个别名。下面是代码定义: int a; int &am...

Invisible的博客 252

从C到C++入门篇(三)引用;引用的本质

变量名,本身是一段内存的引用,即别名(alias)。此处引入的引用,是为己有变量起一个别名。int a= 500;//变量名.实质是一段内存空间的别名(int。

gopher9511的博客 958

关于C++的 引用

1.什么是“引用”?声明和使用“引用”要注意哪些问题?     答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。声明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。 一句话总结:引用为别名,

cinience的专栏 566

C++的引用---李逵又称江湖“黑旋风”

C++中的引用一、引用的定义二、引用特性三、常引用 一、引用的定义 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 比如说,李逵,在家称为"铁牛",江湖上人称"黑旋风”。 类型& 引用变量名(对象名) = 引用实体; void TestRef() { int a = 10; int& ra = a;//<====定义引用类型 printf("%p\n", &a); printf("%p\n"

Galaxy_n的博客 286

C++中的引用

引用就是某个目标变量的别名,对引用的操作与对变量的直接操作效果完全相同。 引用的声明方法:类型标识符 &引用名=目标变量名;   如下:定义引用ra,它是变量a的引用,即别名。     int a;     int &ra=a; 1)   声明一个引用,必须进行初始化。 2) 引用声明完毕后,相当于目标变量有两个名称即该目标原名称和引用名,且不能再把该

Winge_Fish的博客 493

C++中引用的使用&

引用总结 (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。 (2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。 (3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程

u011449880的专栏 429

引用、常指针、常引用、指针常量、引用常量

引用的本质以及const的位置在语法和作用上的区别

Gift-Isla 7170

C++引用(&)详解

对于习惯于使用C语言来进行编写程序的朋友来说,在学习C++的过程当中遇见了引用(&)符 号,可能会有点懵,因为在C语言中的&是取地址符。但是在C++中&有着不一样的用处,当你能够正确掌握C++的&,它将会是你在编写C++程序的道路上的一把提高代码执行效率和增强代码质量的一把利器。引用不是新定义的一个变量,它是给已存在的某个变量取的别名,编译器不会为引用变量开辟空间,它和它所引用的变量共用同一块内存空间。 ......

weixin_58250064的博客 2万+

细谈引用C++

3 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型的实体。a 加 const 之后 权限变更为只读,不拥有写权限,而ra是拥有读写权限的引用,自然会报错。函数在传参和穿返回值的时候并不会直接返回,而是拷贝一个临时变量,造成空间时间的浪费,效率低下。5 在 sizeof 中含义不同,引用结果为引用类型的大小,但指针始终是地址空间所占字节数。引用就是一个别名,没有独立空间,和其引用实体共用同一块空间。3 一个外号专属于一个人,同理,一个引用也只属于一个变量。

weixin_74447672的博客 545

C++中的“引用”详解

前言:在面向对象的程序设计语言中,我们经常听见一些名词,引用,地址,在函数传递参数的时候,我们又经常说值传递,引用传递,最容易让人搞混淆的就是“引用”和“地址”这两个概念了,对于C++和C#来说,引用一词从他们所呈现的表象来看的确很类似,但是本质实际上是不一样的, C++:引用就是一个变量的别名; C#:引用可以用指针去理解,虽然C#没有指针,我们经常说某个变量所引用的数据,可以理解为某...

MIss-Y的博客 1万+
上一篇: c++引用
下一篇: C++类的封装
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值