您的位置:首页 > 编程语言 > C语言/C++

C++中 引用&与取地址&的区别

2018-01-08 15:27 393 查看
之前一直搞不懂,&符号什么时候代表引用,什么时候代表取地址。今天在网上看到一个博客,写的很好,转过来。

一个是用来传值的 一个是用来获取首地址的

&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.

例如: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: