news 2026/5/30 11:08:00

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)”。

就像一个人:

  • 身份证名:张三

  • 小名:三哥

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

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

告别手动计算:AI工具让KBPS转换效率提升10倍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个智能KBPS转换助手,能够:1. 识别自然语言输入(如将50Mbps转换为KBPS)并自动计算 2. 保存常用转换记录 3. 生成带宽使用报告 …

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

Rembg抠图应用场景:10个行业案例分享

Rembg抠图应用场景:10个行业案例分享 1. 智能万能抠图 - Rembg 在图像处理与视觉内容创作日益普及的今天,高效、精准、自动化地去除图片背景已成为多个行业的刚需。传统手动抠图耗时耗力,AI驱动的智能分割技术则彻底改变了这一局面。其中&a…

作者头像 李华
网站建设 2026/5/28 14:49:37

智能抠图Rembg:透明背景生成秘籍

智能抠图Rembg:透明背景生成秘籍 1. 引言:智能万能抠图 - Rembg 在图像处理与内容创作领域,自动去背景是一项高频且关键的需求。无论是电商商品图精修、社交媒体头像设计,还是AI绘画素材准备,精准的主体提取能力都直…

作者头像 李华
网站建设 2026/5/29 19:27:02

5分钟快速验证:Windows容器原型开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Windows容器快速验证工具包,包含:1. 最小化Windows基础镜像 2. 预装常用开发工具(PowerShell、.NET Runtime等) 3. 自动化环境检测脚本 4. 原型应用…

作者头像 李华
网站建设 2026/5/28 19:17:28

小白必看:WSL安装卡住?简单三步解决下载慢

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个新手友好的WSL安装助手,功能:1.步骤式引导界面;2.一键优化下载设置;3.常见问题解答库;4.安装进度小猫动画。要求…

作者头像 李华
网站建设 2026/5/28 22:35:24

零基础教程:3步搞定Docker镜像加速

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个交互式命令行向导工具,引导用户完成Docker国内源配置。要求:1) 显示ASCII艺术欢迎界面 2) 提供5个主流镜像源的可选菜单 3) 自动备份原有配置文件 …

作者头像 李华