C++【引用】

news2024/11/24 4:46:45
P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。
P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。

  

在这里插入图片描述

                                           博主主页:LiUEEEEE
                                                C++专栏
                                              C语言专栏
                                            数据结构专栏
                                            排序算法专栏
                                         力扣牛客经典题目专栏

目录

  • 1、引用的概念
  • 2、引用的使用方式
  • 3、引用的注意事项
    • 3.1、权限的放大(错误示范)
    • 3.2、权限的平移
    • 3.2、权限的缩小
  • 4、结语

1、引用的概念


  引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
  例如:李逵,在家称为"铁牛",江湖上人称"黑旋风"。

在这里插入图片描述

2、引用的使用方式


  引用的使用方式为:
  • 类型& 引用变量名(对象名) = 引用实体;

    例如:
int main()
{
	int a = 10;
	int& p = a;
	cout << "a = " << a << endl;
	p += 10;
	cout << "a = " << a << endl;

	return 0;
}

在这里插入图片描述
  C++中的引用类似于C语言的指针,但又区别于指针,指针是通过保存变量的地址,间接对其进行操作,而C++中的引用,就可以看作是其本体,可直接对其进行操作。

3、引用的注意事项


  在C++中使用引用时,需注意权限的变化,权限只可以平移或变小,不可以变大,下文将对其进行解释。

3.1、权限的放大(错误示范)

int main()
{
	const int a = 10;
	int& p = a;
	cout << "a = " << a << endl;
	p += 10;
	cout << "a = " << a << endl;

	return 0;
}

在这里插入图片描述
  在引用过程中,若对已经使用 const 保护起来的变量a进行引用,如上图所示,会出现报错,因为变量a的值不可以被改变,而引用者p却是可以改变的,发生了权限的放大,不可取。

3.2、权限的平移

int main()
{
	const int a = 10;
	const int& p = a;
	cout << "a = " << a << endl;
	cout << "p = " << p << endl;

	return 0;
}

在这里插入图片描述
  当对前一段代码做如上的更改,即可成功运行,上图中代码的引用也就是权限的平移。

3.2、权限的缩小

int main()
{
	int a = 10;
	const int& p = a;
	cout << "a = " << a << endl;
	a += 10;
	cout << "a = " << a << endl;
	//p += 10;

	return 0;
}

在这里插入图片描述

在这里插入图片描述
  当引用时加入了const来修饰,所代表的意思是,不可以通过引用者p对实体a进行操作,但可以通过实体a来改变a的值,如上所示。




4、结语


在这里插入图片描述

  十分感谢您观看我的原创文章。
  本文主要用于个人学习和知识分享,学习路漫漫,如有错误,感谢指正。
  如需引用,注明地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1876661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入门Java爬虫:认识其基本概念和应用方法

Java爬虫初探&#xff1a;了解它的基本概念与用途&#xff0c;需要具体代码示例 随着互联网的快速发展&#xff0c;获取并处理大量的数据成为企业和个人不可或缺的一项任务。而爬虫&#xff08;Web Scraping&#xff09;作为一种自动化的数据获取方法&#xff0c;不仅能够快速…

【数据分析】1、用Pandas计算数据相关性系数

相关性系数和相关分析是了解变量之间关系的重要工具。通过合理选择相关性系数和科学分析数据&#xff0c;能够有效揭示变量之间的关系&#xff0c;为进一步研究和决策提供有力支持。在实际应用中&#xff0c;应结合业务背景、数据特性和统计原则&#xff0c;谨慎解释和应用相关…

基于知识图谱的医药问答系统实战

数据及代码地址见文末 1.项目配置 (1)Neo4j数据库安装 JDK 安装:https://www.oracle.com/java/technologies/javase-downloads.html Neo4j 安装:https://neo4j.com/download-center/ 配置好 JDK 和 Neo4j 的环境变量 启动:neo4j.bat console 第一次启动有默认用户名和密…

数字信号处理教程(1)——简介

考了几天试&#xff0c;终于有时间来继续写了&#xff0c;接下来&#xff0c;我们主要对数字信号处理和通信原理这两本偏于理论书记录自己的简单看法。当然其他大家讲的比较好的地方&#xff0c;我也会摘录下来。 先来看数字信号处理的内容&#xff0c;数字信号处理中有…

Gradio 4.37.1官方教程二:Blocks

文章目录 一、Blocks及事件监听器1.1 Blocks结构1.2 事件监听器的类型1.3 多数据流1.4 多输入组件1.5 多输出组件1.6 更新组件配置1.7 添加示例1.8 连续运行事件1.9 持续运行事件1.9.1 every参数1.9.2 load方法1.9.3 change方法 1.10 收集事件数据1.11 绑定多个触发器到同一函数…

【ai】trition:tritonclient yolov4:ubuntu18.04部署python client成功

X:\05_trition_yolov4_clients\01-python server代码在115上,client本想在windows上, 【ai】trition:tritonclient.utils.shared_memory 仅支持linux 看起来要分离。 【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行 client代码远程部署在ubuntu18.0…

从灵感到实践:Kimi辅助完成学术论文选题的文艺之旅

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 昨天我们为大家介绍了ChatGPT辅助完成实现设计&#xff08;AI与学术的交响&#xff1a;ChatGPT辅助下的实验设计新篇章&#xff09;。今天我们再来看看Kimi对于论文选题都能提供哪些帮助…

mindspore打卡第9天 transformer的encoder和decoder部分

mindspore打卡第9天 transformer的encoder和decoder部分 import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor from mindspore import dtype as mstypeclass ScaledDotProductAttention(nn.Cell):def __init__(self, dropout_…

如何修改PDF文档的作者名称?

要修改一个 PDF 文档的作者名称&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. **使用 Adobe Acrobat**&#xff08;如果有&#xff09;&#xff1a; - Adobe Acrobat 是一个功能强大的 PDF 编辑工具&#xff0c;支持修改文档属性信息&#xff0c;包括作者名称。打开…

SSRF一篇文章实战举例全面学懂

前言 Gopher协议在SSRF漏洞中的深入研究&#xff08;附视频讲解&#xff09; - 知乎 (zhihu.com) 上面这篇文章真的写的很好&#xff0c;是目前看过最好的将SSRF(服务端请求伪造)和Gopher协议的内容。 然后这种题型&#xff0c;我记得在之前的文章&#xff0c;金砖里有个云启…

Python 面试【★★★】

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

HIVE每日一题

select * from sku_info order by sku_id ; 为什么结果没有顺序排序。什么原因导致的&#xff1f;

第二十一课,列表的操作函数

一&#xff0c;len(列表):求列表的长度 当你需要知道一个列表中含有多少个元素时&#xff0c;可以使用len()函数&#xff0c;将列表的变量名放入len()函数的括号中&#xff0c;它将告诉你这个列表中有多少个元素&#xff0c;也就是它的长度&#xff01; 需要注意的是&#xf…

电脑文件夹里的表格删除了怎样恢复?别急,可这样做

在日常工作中&#xff0c;我们经常会使用到各种电子表格来记录、整理和分析数据。然而&#xff0c;有时由于操作失误或其他原因&#xff0c;我们可能会不小心将电脑文件夹中的重要表格删除。面对这种情况&#xff0c;许多人可能会感到惊慌失措&#xff0c;担心数据丢失会给工作…

试析C#编程语言的特点及功能

行步骤&#xff0c;而不必创建新方法。其声明方法是在实例化委托基础上&#xff0c;加一对花括号以代表执行范围&#xff0c;再加一个分号终止语句。 2.3.3 工作原理 C#编译器在“匿名”委托时会自动把执行代码转换成惟一命名类里的惟一命名函数。再对存储代码块的委托进行设…

吉时利 Keithley2470 图形数字源表

Keithley2470吉时利图形SMU数字源表 2470 型图形化高压 SourceMeter SMU 2470 高压 SMU 凭借其 1100V 和 10fA 能力&#xff0c;经优化用于检定和测试高电压、低泄漏器件、材料和模块&#xff0c;如碳化硅 (SiC)、氮化镓(GaN)、功率 MOSFET、瞬态抑制器件、电路保护器件、功率…

5个大气的wordpress付费主题

Sesko赛斯科wordpress外贸主题 适合用于重型机械设备公司建外贸官方网站的橙红色wordpress外贸主题。 https://www.jianzhanpress.com/?p5886 Polar钋啦wordpress外贸主题 制造业wordpress网站模板&#xff0c;适合生产制造企业官方网站使用的wordpress外贸主题。 https:/…

【新能源汽车-电控】控制芯片、电机控制、电机结构、硬件相关、通讯协议、操作系统、上位机、C语言汇总

【新能源汽车-电控】控制芯片、电机控制、电机结构、硬件相关、通讯协议、操作系统、上位机、C语言汇总 文章目录 前言一、控制芯片二、电机控制三、电机结构三、硬件相关四、通讯协议五、操作系统六、上位机七、C语言总结 前言 提示&#xff1a;以下是本篇文章正文内容&#…

构建 Audio Unit 应用程序

构建 Audio Unit 应用程序 构建 Audio Unit 应用程序从选择设计模式开始I/O Pass ThroughI/O Without a Render Callback FunctionI/O with a Render Callback FunctionOutput-Only with a Render Callback Function其他设计模式 构建应用程序配置 audio session指定 audio uni…

分享一个导出数据到 Excel 的解决方案

前言 许多业务场景下需要处理和分析大量的数据&#xff0c;而 Excel 是广泛使用的文件格式&#xff0c;几乎所有人都能打开和查看 Excel 文件&#xff0c;因此将数据库中的原始数据处理后&#xff0c;导出到 Excel 是一个很常见的功能&#xff0c;对于数据管理、分析、备份、展…