C++中 引用&与取地址&的区别【转载】

白昼怎懂夜的黑 提交于 2020-01-29 00:45:12

原文链接:link

引用:传值;取地址:获取首地址

&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.
例如: int &rf; // 声明一个int型的引用rf.

&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时表示取对象的地址.

在C++中,既有引用又有取地址,好多人对引用和取地址不是很清楚,因此也无法区分。其实他们的区别可以用一句话概括:和类型在一起的是引用,和变量在一起的是取址。下面我们通过实例具体了解一下:

1)引用在赋值=的左边,而取地址在赋值的右边,比如
int a=3;
int &b=a; //引用
int *p=&a; //取地址

2)和类型在一起的是引用,和变量在一起的是取址。 举例同样如上,还有下例:
int function(int &i)
{
} //引用

3)对于vector,上面2条同样适合
vector vec1(10,1); //initialize vec1: 10 elements, every element’s value is 1
vector &vec2 = vec1; // vec2 is reference to vec1
vector *vec3 = &vec2; //vec3 is addresss of vec1 and vec2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!