当前位置: 首页 > news >正文

C++ 中的引用()到底是什么?——从 C 语言指针到 C++ 语言抽象

很多从 C / Java / Android 转到 C++ 的工程师,都会在一个地方卡住:

int& r = x;
这个“引用”到底是个什么东西?

甚至会产生很强的违和感:

👉C 语言里根本没有int&这种写法。

是的,这是关键点。

这篇文章专门讲清楚一件事:

✅ 引用不是指针
✅ 引用不是语法糖
✅ 引用是 C++ 新引入的一层“语言抽象”

一、先给结论:引用是 C++ 新创造的概念

👉C 语言里只有“指针”,没有“引用”。

C 语言只有这一套模型:

int x = 10; int* p = &x;
  • 变量是内存
  • 指针是地址
  • & 取地址 ——解引用

👉 一切都是“内存和地址”。

而 C++ 新增了一种东西:

int x = 10; int& r = x;

这不是新内存,不是新地址,而是 C++ 语言层规定了一种新语义:

👉r 是 x 的另一个名字。

从这一刻开始:

r = 20;

等价于:

x = 20;

二、引用的本质:不是新对象,而是“别名”

很多人理解不了引用,是因为总在想:

❌ r 在哪块内存?
❌ r 是不是内部偷偷是个指针?

这些对“写代码”来说都不重要。

你只需要记住一句工程级定义

👉引用,不是一个新对象,是已有对象的“别名(alias)”。

就像一个人:

  • 身份证名:张三

  • 小名:三哥

👉 名字不同,人是同一个。

http://www.jsqmd.com/news/233371/

相关文章:

  • 如何用AI解决JPS增量注解处理被禁用问题
  • 30分钟打造Visual C++运行库检测工具
  • Rembg模型训练教程:自定义数据集微调
  • 传统授权管理 vs AI驱动解决方案
  • 用CURL POST快速验证API接口的5种方法
  • Rembg模型调试:日志分析与问题定位
  • Rembg WebUI开发:自定义抠图界面教程
  • 如何用AI自动修复Servlet.service()异常?
  • Bootstrap开发效率对比:传统vsAI辅助
  • 实测5种Win11 C盘清理方法,这种最有效
  • 对比传统方法:AI如何更快诊断TIWORKER.EXE问题
  • 小白必看:VMware中文设置图文详解
  • CONDA命令零基础入门:从安装到第一个Python环境
  • 如何用AI自动优化航班设置暂停天数
  • AI如何自动反编译JAR包并优化代码
  • 影视级虚拟制作:MIDSCENE在电影预演中的实战案例
  • 模型部署架构:Rembg高可用方案设计
  • 一文掌握ResNet18应用|本地化部署1000类物体识别方案
  • 如何用AI自动生成JLINK调试脚本
  • Rembg性能测试:不同分辨率图片处理速度
  • 告别模型训练烦恼|AI万能分类器实现即时自定义文本分类
  • 1小时快速验证:基于MSDN API的自动化测试工具原型
  • 采购与招标 item_search - 关键词搜索接口对接全攻略:从入门到精通
  • 电商支付系统RSA公钥缺失实战解决方案
  • 舆情分析新利器|基于StructBERT的AI万能分类器实践指南
  • 摄影比赛获奖作品:Rembg抠图应用解析
  • 零基础教程:5分钟学会HTML转PDF开发
  • 舆情分析新姿势|用AI万能分类器实现免训练文本智能归类
  • 4.21 虚拟内存增强问答:用外部存储扩展AI的记忆能力
  • 快速验证:MOBAXTERM汉化原型设计与用户测试