C++中的引用语法
文章目录基本语法效果演示函数引用传参普通传参值传递引用传参地址传递、修改原变量效果展示核心机制底层本质指针与引用的比较C语言指针写法繁琐C 引用写法简洁注意易错点错误1引用不初始化错误2绑定常量错误3更改引用指向不能改嫁基本语法int a 10; int b a; // b 是 a 的引用别名定义引用必须初始化不能单独写 int b;变量名 a、b 随便起和原变量名不需要一致效果演示int a 10; int b a; b 999; // a 也会变成 999函数引用传参普通传参值传递void test(int x){ x 1024; } // 外部变量不会变原理函数内是副本修改的是复制出来的新变量和外部无关。引用传参地址传递、修改原变量void test(int x){ x 1024; } // 外部实参直接被修改效果展示#includestdio.h void test (int x){ x 1024; printf(test函数内部的x值%d \n,x); // 1 } int main (){ int x 1; printf(调用函数前x的值%d \n,x); // 1024 test(x); printf(调用函数后x的值%d \n,x); // 1 }理解main 中的 x 在内存有一块空间调用 test 时test 里的 x 只是这块空间的另一个名字操作同一个内存格子。核心机制引用是“变量的别名。如int x中的在这里是类型修饰符而不是取地址运算符。语义声明x是某个已存在整型变量的别名。此后对x的任何操作都直接等同于对原变量的操作。底层本质在汇编/机器码层面引用在底层完全是指针的实现。它们都传递地址都只占 8 字节64位系统。唯一的区别在于语法糖特征C 语言指针 int *pC 引用 int r底层实现存储变量的地址存储变量的地址完全一样初始化可以不初始化野指针风险必须初始化且绑定后不可更改解引用必须显式使用 *p 来取值/赋值编译器自动解引用直接写 r 即可能否为 NULL可以p NULL不可以能否能重新指向可以p other不可以绑定后只能指向同一个变量void swap_ref(int a, int b) { // 形参是引用 int temp a; // 直接使用 a相当于 *a但不用写 * a b; // 直接修改实参 b temp; } // 调用swap_ref(x, y); // 直接传变量不需要 取地址指针与引用的比较功能完全等价都能修改外部原变量C语言指针写法繁琐voidtest(int*x){*x1024;}// 调用必须传地址test(num);C 引用写法简洁void test(int x){ x 1024; } // 调用直接传变量 test(num);注意形参名和实参名必须一样吗结论完全不需要一致引用绑定的是内存地址不是变量名字。记忆别名只是外号外号和本名不需要相同。指针形参 *x调用 变量内部 *x 解引用引用形参x调用直接写变量内部直接用易错点错误1引用不初始化int a; // 非法错误2绑定常量int a 10; // 非法错误3更改引用指向不能改嫁a b; // 这是赋值不是更换引用指向

相关新闻

MCP Server Boot Starters:快速构建稳定AI工具服务器的实战指南

MCP Server Boot Starters:快速构建稳定AI工具服务器的实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 先搞清楚 MCP Server Boot Starters 到底解决什么问题 如果你正在接触 AI 应用开发,尤其是想让大语言模型&#xff08…

2026/7/10 4:21:02阅读更多 →
Devpod 远程开发实践:如何提升开发者生产力

Devpod 远程开发实践:如何提升开发者生产力

在大规模软件工程体系中,单体仓库、复杂构建流程和本地 开发环境维护,往往会成为影响开发者生产力的重要因素。某海外大型科技公司通过 Devpod 远程开发环境,将代码、工具链和构建资源迁移到云端,在提升构建速度、降低环境配置成本…

2026/7/10 4:21:02阅读更多 →
兄弟HL-2260D打印机驱动下载|双面驱动完整安装故障解决指南

兄弟HL-2260D打印机驱动下载|双面驱动完整安装故障解决指南

“兄弟 HL-2260D 自动双面打印失效,九成故障都是兄弟 HL-2260D 打印机驱动下载选错安装包导致!”兄弟 HL-2260D 是商用高性价比黑白激光打印机,凭借 30 页 / 分钟高速输出、标配自动双面打印、鼓粉分离低成本耗材、250 页大容量纸盒等优势&am…

2026/7/10 4:16:02阅读更多 →
手写Llama 3原理:500行Python拆解RMSNorm、RoPE与GQA

手写Llama 3原理:500行Python拆解RMSNorm、RoPE与GQA

1. 项目概述:这不是“复刻Llama 3”,而是用Python亲手搭一座语言模型的脚手架“手写 Llama 3 —— 代码原理”这个标题,乍看容易让人误以为是要从零实现一个能跑通Llama 3全量参数(如405B)的工业级模型。但作为在NLP一…

2026/7/10 5:41:06阅读更多 →
基于python多光谱遥感数据处理、图像分类、定量评估及机器学习方法

基于python多光谱遥感数据处理、图像分类、定量评估及机器学习方法

基于卫星或无人机平台的多光谱数据在地质、土壤调查和农业等应用领域发挥了重要作用,在地质应用方面,综合Aster的短波红外波段、landsat热红外波段等多光谱数据,可以通过不同的多光谱数据组合,协同用于矿物信息有效提取。此外&…

2026/7/10 5:41:06阅读更多 →
MoonBit Skills Marketplace :让工具可发布、可运行、可被 Agent 调用

MoonBit Skills Marketplace :让工具可发布、可运行、可被 Agent 调用

当 Agent 开始参与真实开发任务时,它需要的不只是模型本身,还需要一组可以调用的工具。MoonBit Skills 提供了一种新的工具分发方式:开发者可以用 MoonBit 编写工具,将其编译为 WebAssembly,并通过 mooncakes.io / Ski…

2026/7/10 5:41:06阅读更多 →
从入门到应用:AI大模型学习路径与RAG系统实战指南

从入门到应用:AI大模型学习路径与RAG系统实战指南

1. 从“炼丹”到“造车”:我理解的AI大模型学习路径最近身边想入坑AI大模型的朋友越来越多,问得最多的问题就是:“这东西到底该怎么学?感觉知识点又多又散,无从下手。” 这种感觉我太懂了,几年前我刚接触时…

2026/7/10 5:41:06阅读更多 →
Ray多节点容器化部署

Ray多节点容器化部署

Ray多节点容器化部署 前置说明 版本信息 2.56.0 从 Ray 2.52.0 开始,Ray 支持内置令牌身份验证,它提供了额外的措施来防止对集群的未经授权访问(包括不受信任的代码执行)。有关详细信息,请参阅 Ray 令牌身份验证。 …

2026/7/10 5:41:06阅读更多 →
【单片机毕业设计】基于 STM32/51 单片机的 TOF400C 激光测距报警装置设计与实现,基于单片机的 4 米 TOF 激光测距声光预警系统开发(023401)

【单片机毕业设计】基于 STM32/51 单片机的 TOF400C 激光测距报警装置设计与实现,基于单片机的 4 米 TOF 激光测距声光预警系统开发(023401)

文章目录 20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能一、核心测量功能二、人机交互辅助功能三、超限预警核心功能 技术路线项目演示关于我们项目案例源码获取 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业&#x1f6a…

2026/7/10 5:36:06阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/9 5:56:19阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/9 9:45:20阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/10 4:59:05阅读更多 →
浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比

浏览器缓存行为深度解析:Chrome/Firefox/Safari 对 304 响应的 5 种触发场景对比当你在浏览器地址栏敲入一个网址时,背后可能隐藏着一场关于"要不要重新下载资源"的精密博弈。这场博弈的裁判是HTTP缓存机制,而304状态码则是这场博弈…

2026/7/10 0:00:01阅读更多 →
RoboWits:面向创造性问题求解的双臂机器人认知推理基准

RoboWits:面向创造性问题求解的双臂机器人认知推理基准

1. 项目概述:这不是又一个机器人抓取数据集,而是一次对“思考力”的压力测试 RoboWits——这个名字里藏着两个关键信号:“Robo”直指物理世界中的具身智能体,“Wits”则毫不掩饰地指向人类最核心的认知能力:机敏、判断…

2026/7/10 0:00:01阅读更多 →
5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能

5分钟完全指南:如何使用TegraRcmGUI图形化工具解锁Switch无限可能 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Windows…

2026/7/10 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/9 9:45:20阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/9 15:50:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/9 14:14:17阅读更多 →