引用变量实际上是对已经存在的变量的别名,也就是另一个名字。一旦引用被初始化为一个变量,那么就可以使用变量名或引用名来引用该变量。
引用与指针的区别
引用常常与指针混淆,但是引用与指针之间有三个主要的区别:
-
你不能拥有空引用。你必须能够假设一个引用总是连接到一块合法的存储区域。
-
一旦一个引用被初始化为一个对象,就不能再改变它去引用另一个对象。而指针则可以在任何时候指向另一个对象。
-
引用必须在创建时进行初始化。而指针可以在任何时间初始化。
在 C++ 中创建引用
可以把变量名看作是附着在内存位置上的标签。那么,你可以把引用看作是附加到该内存位置的第二个标签。因此,你可以通过原始变量名或引用名来访问变量的内容。例如,假设我们有如下示例:
int i = 17;
我们可以为 i
声明引用变量如下:
int& r = i;
读取这些声明中的 &
作为引用。因此,读取第一个声明为 "r 是一个初始化为 i
的整数引用",读取第二个声明为 "s 是一个初始化为 d
的双精度浮点数引用"。以下示例在 int
和 double
上使用了引用:
示例
#include <iostream>
using namespace std;
int main () {
int i;
double d;
int& r = i;
double& s = d;
i = 5;
cout << "i 的值 : " << i << endl;
cout << "i 的引用 : " << r << endl;
d = 11.7;
cout << "d 的值 : " << d << endl;
cout << "d 的引用 : " << s << endl;
return 0;
}
当上述代码被一起编译并执行时,它产生如下结果:
i 的值 : 5
i 的引用 : 5
d 的值 : 11.7
d 的引用 : 11.7
引用通常用于函数参数列表和函数返回值。因此,以下两个主题是与 C++ 引用相关的两个重要话题,C++ 程序员应该对此有所了解:
序号 |
概念 & 描述 |
1 |
引用作为参数 |
2 |
引用作为返回值 |