详解C++ 左值引用与 const 关键字
左值引用是已定义的变量的别名其主要用途是用作函数的形参将 const 关键字用于左值引用时其在初始化时可接受的赋值形式变得更加广泛了这里来总结一下。左值引用是已定义的变量的别名其主要用途是用作函数的形参通过将左值引用变量用作参数函数将使用原始数据而不是副本。引用变量必须在声明时同时初始化可将const关键字用于左值引用如下所示12345678//声明并初始化常规左值引用变量intx 55;int rx x;//将const关键字用于左值引用变量以下几种为等效表示intx 55;constint crx x;intconst crx x;在 Microsoft Visual Studio 中连续多个const会被编译器解释成一个即const const const const int 与const int 等效除此之外const int const 在 Microsoft Visual Studio 中也与const int 等效而int const在 QT 中将会报错在 Microsoft Visual Studio 中与int 等效。以上两种类型左值引用的特性如下旧版 C 可能与下列特性不十分吻合以 C11 为准类型为int 的引用rx只能作为已有变量的别名不会生成临时变量可修改所引用变量的值可将int变量、int 变量、int *指针所指变量、int *const指针所指变量在初始化时赋给rx接受可通过地址访问的非const变量必须在声明时初始化后续无法更换所引用的变量。变量初始化完成后其表现与int类型一致。类型为const int 的引用crx既可作为已有变量的别名也可在合适的时候生成临时变量成为该临时变量的别名但不可修改所引用变量的值可将int变量、const int变量、int 变量、const int 变量、int *指针所指变量、int *const指针所指变量、const int *指针所指变量、类型为int的非左值比如字面常量100、多项表达式150*2、函数的int返回值、类型不是int但可转换为int的变量或非左值比如short变量、short 变量、多项表达式1.050.0*2.0、字面常量100.0、函数的double返回值在初始化时赋给crx也必须在声明时初始化后续无法更换所引用的变量。变量初始化完成后其表现与const int类型一致。常规左值引用变量的初始化用法如下123456789101112131415161718192021222324//初始化用法一作为short变量别名shortx 55;short rx x;cout x;//结果为55cout rx;//结果为55cout x;//32位系统结果为0x0093F7BCcout rx;//32位系统结果为0x0093F7BCcout sizeof(x);//结果为2cout sizeof(rx);//结果为2//初始化用法二作为short变量别名多层引用shortx 55;short rx x;short rxx rx;//初始化用法三作为short变量别名指针表示法指针为short*shortx 55;short* px x;short rx *px;//初始化用法四作为short变量别名指针表示法指针为short *constshortx 55;short*constpx x;short rx *px;被const关键字修饰的左值引用变量初始化用法如下1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162//初始化用法一作为short变量别名shortx 55;constshort rx x;//初始化用法二作为const short变量别名constshortx 55;constshort rx x;//初始化用法三作为short变量别名多层引用shortx 55;short rx x;constshort rxx rx;//初始化用法四作为short变量别名多层引用第一层引用为constshortx 55;constshort rx x;constshort rxx rx;//初始化用法五作为short变量别名指针表示法指针为short*shortx 55;short* px x;constshort rx *px;//初始化用法六作为short变量别名指针表示法指针为const short*shortx 55;constshort* px x;constshort rx *px;//初始化用法七作为short变量别名指针表示法指针为short *constshortx 55;short*constpx x;constshort rx *px;//初始化用法八作为short变量别名指针表示法指针为const short *constshortx 55;constshort*constpx x;constshort rx *px;//初始化用法九将创建临时变量类型为int的非左值字面常量constint rx 100;//初始化用法十将创建临时变量类型为int的非左值多项表达式constint rx 150*2;//初始化用法十一将创建临时变量类型为int的非左值函数返回int值constint rx abs(10);//初始化用法十二将创建临时变量类型不是int但可转换为int的变量shortx 55;constint rx x;cout x;//结果为55cout rx;//结果为55cout x;//32位系统结果为0x006FFCF0cout rx;//32位系统结果为0x006FFCD8cout sizeof(x);//结果为2cout sizeof(rx);//结果为4//初始化用法十三将创建临时变量类型不是int但可转换为int的非左值字面常量constint rx 100.0;//初始化用法十四将创建临时变量类型不是int但可转换为int的非左值多项表达式constint rx 1.050.0*2.0;将初始化时int 与const int 可接受的形式列个表如下初始化时可接受的形式int 类型const int 类型int变量可以可以const int变量不可以可以int 变量可以可以const int 变量不可以可以int *所指变量可以可以int * const所指变量可以可以const int *所指变量不可以可以const int * const所指变量不可以可以形如100的int字面常量不可以可以将创建临时变量形如150*2的int多项表达式不可以可以将创建临时变量返回类型为int的函数返回值不可以可以将创建临时变量类型可以转换为int的变量不可以可以将创建临时变量形如100.0可转换为int的字面常量不可以可以将创建临时变量形如1.050.0*2.0可转换为int的多项表达式不可以可以将创建临时变量到此这篇关于C 左值引用与 const 关键字的文章就介绍到这了

相关新闻

碧蓝航线Live2D资源提取完整指南:从游戏文件到可复用模型

碧蓝航线Live2D资源提取完整指南:从游戏文件到可复用模型

碧蓝航线Live2D资源提取完整指南:从游戏文件到可复用模型 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 还在为无法保存碧蓝航线中精美的Live2D动…

2026/7/8 8:37:22阅读更多 →
外文论文辅导平台怎么选?2026年主流服务对比与建议

外文论文辅导平台怎么选?2026年主流服务对比与建议

一、痛点:外文论文写作的三个坎 对于非英语母语的研究者来说,用外文完成学位论文或期刊投稿,常常面临三重压力:一是学术表达总差一口气,导师反馈“语言不够地道”;二是引用格式繁琐,APA、MLA、…

2026/7/8 8:37:22阅读更多 →
意想不到,网络安全今年更卷了:云安全岗薪资溢价 30%,但 “PPT 架构师” 根本挤不进!

意想不到,网络安全今年更卷了:云安全岗薪资溢价 30%,但 “PPT 架构师” 根本挤不进!

最近在后台回复粉丝的问题,已经遇到不少211/985高校信息安全专业、做安全攻防/渗透方向,却没找到暑期实习的粉丝了。 背景都很不错,有的CTF竞赛拿过奖,有的跟着导师做过项目,他们的提问甚至让我有点吃惊。 坦白来说&am…

2026/7/8 8:37:22阅读更多 →
从运营小白到效率达人:电商物流管理的完整进化指南

从运营小白到效率达人:电商物流管理的完整进化指南

做电商三年多,我见过太多运营同行在同样的坑里反复摔倒。今天想把这些经验完整梳理一遍,从最基础的认知到系统化的管理,从单打独斗到团队协同,希望能给正在这条路上摸索的你一些参考。 这篇文章不讲高深的理论,全是实战…

2026/7/8 9:48:31阅读更多 →
TLA2518与PIC32MX695F512L的多通道ADC数据采集方案

TLA2518与PIC32MX695F512L的多通道ADC数据采集方案

1. 项目背景与核心需求 在工业自动化、医疗设备和消费电子等领域,模拟信号到数字信号的可靠转换一直是嵌入式系统设计的关键环节。我最近在一个工业传感器项目中遇到了一个典型场景:需要同时采集8路不同传感器的模拟信号(温度、压力、振动等&…

2026/7/8 9:48:31阅读更多 →
基于TLA2518与STM32的高精度多通道信号采集方案

基于TLA2518与STM32的高精度多通道信号采集方案

1. 项目概述:高精度模拟信号数字化方案 在工业测量、医疗设备和自动化控制等领域,将模拟信号可靠地转换为数字格式是系统设计的关键环节。本项目基于德州仪器的TLA2518模数转换器(ADC)与STMicroelectronics的STM32F373VC微控制器,构建了一个高…

2026/7/8 9:48:31阅读更多 →
豆包智能体 7 月 15 日全面下线:技术解读、数据迁移与自动化备份方案

豆包智能体 7 月 15 日全面下线:技术解读、数据迁移与自动化备份方案

合规调整背后的技术架构变更,开发者如何高效备份智能体数据?「AI导出鸭」一键导出完整人设与对话记录一、事件背景:不是「豆包停服」,而是「自定义智能体」功能退役 2026年7月15日零点,豆包App内全部自定义智能体功能将…

2026/7/8 9:48:31阅读更多 →
TLA2518与dsPIC30F4011实现高精度ADC信号链设计

TLA2518与dsPIC30F4011实现高精度ADC信号链设计

1. 项目背景与核心挑战 在工业控制、医疗设备和物联网传感器等嵌入式系统中,模拟信号到数字信号的可靠转换一直是关键的技术瓶颈。传统方案往往面临三个核心痛点:信号完整性难以保障、转换精度受环境干扰、以及MCU与ADC的协同效率低下。这正是TLA2518与d…

2026/7/8 9:48:31阅读更多 →
AI巨头展开免费算力争夺战,初创企业成为主要受益方

AI巨头展开免费算力争夺战,初创企业成为主要受益方

7月7日讯,据《华尔街日报》报道,硅谷初创企业创始人正迎来一轮算力积分热潮。多家AI模型供应商为争夺新企业客户,开始向初创公司提供云计算资源、token积分、模型访问权限以及价格优惠等支持,竞争日趋激烈。报道称,埃隆…

2026/7/8 9:43:31阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

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

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

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

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

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

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

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

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

2026/7/8 2:26:06阅读更多 →
作为一个给团队打绩效的人,我想说几句

作为一个给团队打绩效的人,我想说几句

我每半年都会给团队成员打绩效,也会参与和 CTO 的绩效校准,所以从管理者的视角,说说这件事 首先,我先把结论告诉你:接受结果,但一定要把原因问清楚。 因为当绩效公布到你这里的时候,结果基本已…

2026/7/8 0:01:17阅读更多 →
A股股指期货:全维度解析(多表格结构化完整版)

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货,是中国金融期货交易所(中金所)上市的标准化金融期货合约,交易标的为 A 股大盘指数,约定未来特定时间按约定价格现金交割指数涨跌差价,不交割一篮子股票…

2026/7/8 0:01:17阅读更多 →
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

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

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

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

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

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

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

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/7 5:11:21阅读更多 →