C++的引用变量是别名,也就是另一个名称为一个已经存在的变量。引用变量初始化,无论是变量名或引用名可以用于指该变量。
C++引用VS指针:
引用经常和指针混淆,引用和指针之间有三个主要区别:
-
不能有NULL引用。必须始终能够假设一个参考连接到一个合法的一块存储。
-
一旦参考被初始化为一个对象,它不能被改变为引用另一个对象。指针可以在任何时候指向另一个。
-
在创建时引用必须初始化。指针可以随时进行初始化。
C++创建引用:
想想一个变量名作为附加到在存储器中的变量的位置的标签。那么想到一个引用作为连接到存储位置的第二个标签。因此,可以通过任一原始变量名或参考访问变量的内容。例如,假设我们有下面的例子:
int i = 17;
我们可以声明引用变量 i 如下。
int& r = i;
读取& 声明作为参考。因此,读第一个声明为“r是一个整数引用初始化为i”和读第二个声明为“s是一个双引用初始化到d”。下面的例子利用对int和double引用:
#include <iostream> using namespace std; int main () { // declare simple variables int i; double d; // declare reference variables int& r = i; double& s = d; i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; return 0; }
当上述代码被编译在一起并执行时,它产生了以下结果:
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7
引用通常用于函数参数列表和函数返回值。所以,以下是有关C++引用的两个重要概念,作为一个C++程序员应该很清楚:
概念 | 描述 |
---|---|
引用作为参数 | C++支持传递引用的函数参数比参数更安全 |
引用作为返回值 | 可以从C++函数像任何其他数据类型可以返回返回引用 |