news 2026/2/3 19:34:01

引用的特点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
引用的特点

引用

引用的特性

1.引⽤在定义时必须初始化

int &ra;//未初始化这里会报错

2.⼀个变量可以有多个引⽤

int a = 10; int& b = a; //int &c; int& d = b;

3.引⽤⼀旦引⽤⼀个实体,再不能引⽤其他实体

#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; int main() { int a = 10; int& b = a; //int &c; int& d = b; int e = 20; //这里并非是让d引用e,因为C++中引用不可以改变指向 //所以这里是赋值 d = e; cout << &a << endl; cout << &b << endl; cout << &d << endl; cout << &e << endl; return 0; }

引用是否可以代替指针?

不可以,比如在一个链表中A->B->C,我要删除元素B,这时候我需要把A的指向下一个节点指向C,C的指向前一个节点的指针指向A,但是引用不可以改变其指向,所以引用不能代替指针

引⽤的使⽤

• 引⽤在实践中主要是于引⽤传参和引⽤做返回值中减少拷⻉提⾼效率和改变引⽤对象时同时改变被引⽤对象。

• 引⽤传参跟指针传参功能是类似的,引⽤传参相对更⽅便⼀些。

• 引⽤返回值的场景相对⽐较复杂,我们在这⾥简单讲了⼀下场景,还有⼀些内容后续类和对象章节中会继续深⼊讲解。

• 引⽤和指针在实践中相辅相成,功能有重叠性,但是各有特点,互相不可替代。C++的引⽤跟其他语⾔的引⽤(如Java)是有很⼤的区别的,除了⽤法,最⼤的点,C++引⽤定义后不能改变指向,Java的引⽤可以改变指向。

• ⼀些主要⽤C代码实现版本数据结构教材中,使⽤C++引⽤替代指针传参,⽬的是简化程序,避开复杂的指针,但是很多同学没学过引⽤,导致⼀头雾⽔。

指针和引⽤的关系

C++中指针和引⽤就像两个性格迥异的亲兄弟,指针是哥哥,引⽤是弟弟,在实践中他们相辅相成,功能有重叠性,但是各有⾃⼰的特点,互相不可替代。

• 语法概念上引⽤是⼀个变量的取别名不开空间,指针是存储⼀个变量地址,要开空间。

• 引⽤在定义时必须初始化,指针建议初始化,但是语法上不是必须的。

• 引⽤在初始化时引⽤⼀个对象后,就不能再引⽤其他对象;⽽指针可以在不断地改变指向对象。

• 引⽤可以直接访问指向对象,指针需要解引⽤才是访问指向对象。

• sizeof中含义不同,引⽤结果为引⽤类型的⼤⼩,但指针始终是地址空间所占字节个数(32位平台下占4个字节,64位下是8byte)

• 指针很容易出现空指针和野指针的问题,引⽤很少出现,引⽤使⽤起来相对更安全⼀些。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 10:38:06

编辑相似度(Edit Similarity):原理、演进与多模态扩展

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1 引言 在人工智能与机器学习领域&#xff0c;衡量两个数据对象之间的…

作者头像 李华
网站建设 2026/1/28 10:45:24

【深度解析】MiniCPM 2.0:端侧大模型的技术性进展与技术革新

2024年9月5日&#xff0c;MiniCPM团队正式发布了备受瞩目的端侧语言大模型系列——MiniCPM 2.0的技术报告。作为一款聚焦于终端设备部署的轻量化大模型&#xff0c;MiniCPM 2.0在保持模型小巧体积的同时&#xff0c;实现了性能的跨越式提升&#xff0c;为人工智能在边缘计算领域…

作者头像 李华
网站建设 2026/2/3 14:51:58

ClickHouse 快速入门

ClickHouse 快速入门1 ClickHouse 介绍1 行式存储VS列式存储2 ClickHouse VS MySQL3 ClickHouse VS Apache Doris4 ClickHouse 的优缺点5 ClickHouse 适用的场景2 ClickHouse 安装1 镜像下载2 容器运行3 创建用户3 ClickHouse 连接1 连接2 建表测试4 SpringBoot 集成 ClickHous…

作者头像 李华
网站建设 2026/1/29 18:17:35

基于SpringBoot的人事管理系统设计与实现

基于SpringBoot的人事管理系统设计与实现 基于SpringBoot的人事管理系统&#xff1a;毕业设计优质资源全解析 在当今数字化时代&#xff0c;企业人力资源管理正经历着从传统手工操作向智能化、自动化转型的关键阶段。对于计算机科学和软件工程专业的学生而言&#xff0c;一个…

作者头像 李华
网站建设 2026/2/2 18:54:20

Day36官方文档的阅读

官方文档咋找&#xff1f; 常用渠道是项目的 GitHub 仓库&#xff08;一般会有docs文件夹&#xff09;&#xff0c;或者工具 / 框架的官方网站。 看文档的注意点 必须保证你安装的工具包版本&#xff0c;和看的文档版本一致&#xff01;不然可能出现 “文档写了 A 功能&#x…

作者头像 李华