C++中 引用&与取地址&的区别
一个是用来传值的 一个是用来获取首地址的
&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.
例如: int &rf; // 声明一个int型的引用rf.
&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时
表示取对象的地址.
在C++中,既有引用又有取地址,好多人对引用和取地址不是很清楚,因此也无法区分。其实他们的区别可以用一句话概括:和类型在一起的是引用,和变量在一起的是取址。下面我们通过实例具体了解一下
1)引用在赋值=的左边,而取地址在赋值的右边,比如
-
int a=3;
-
int &b=a; //引用
-
int *p=&a; //取地址
2)和类型在一起的是引用,和变量在一起的是取址。 举例同样如上,还有下例:
-
int function(int &i)
-
-
{
-
-
} //引用
3)对于vector,上面2条同样适合
-
vector<int> vec1(10,1); //initialize vec1: 10 elements, every element's value is 1
-
vector<int> &vec2 = vec1; // vec2 is reference to vec1
-
vector<int> *vec3 = &vec2; //vec3 is addresss of vec1 and vec2
微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义