首先,什么是引用?
答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。
先看代码:
#include <iostream>
using namespace std;
int main ()
{
// 声明简单的变量
int i; double d;
// 声明引用变量
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
其次,申明和使用“引用”要注意什么?
答:1 申明一个引用的时候,切记要对其进行初始化。
2 引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。 3 声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。
4 不能建立数组的引用。
最后,引用很容易与指针混淆,它们之间有三个主要的不同:
1不存在空引用。引用必须连接到一块合法的内存。
2 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
3 引用必须在创建时被初始化。指针可以在任何时间被初始化。