引用
引用
作用:给变量起个别名。(访问的内存一样)
语法:数据类型 &别名 = 原名。
引用的注意事项:
1--引用必须初始化。
2--引用在初始化后就不能改变了。
引用作函数参数:
在函数传参的时候,可以利用引用的技术让形参修饰实参,可以简化指针修改。
引用作函数的返回值:
1--不要返回局部变量的引用。(局部变量是在栈区,用完就释放了)
如果返回了,第一次输出结果正确,因为编译器做了保留,第二次输出结果就乱码了。
2--函数的调用可以作为左值。(也就是可以进行赋值)
引用的本质:
引用的本质在c++中就是一个指针常量 。
int &ref = a;
在编译器内部,会变成这样
int *const ref = &a;
ref = 20在编译器内部发现ref是引用自动变成*ref = 20;
常量引用:
作用:主要用来修饰形参,防止误操作。
int & ref = 10 为什么不合法?
引用引用的应该是栈区或者堆区的内存空间,但10是在常量区。
const int & ref = 10
当加上const之后,编译器做了这样的事,
int temp = 10;
const & ref = temp;
加入const之后变成只读的状态,不可修改。
posted on 2021-01-12 20:16 Love&Share 阅读(149) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~