引用(reference)为对象起了另外一个名字,引用类型引用另外一种类型。
引用即别名,引用并非对象,它只是为一个已经存在的对象所起的另外一个名字。
通过将声明符写成&d的形式,其中d是声明的变量名:
int ival = 1024;
int &refVal = ival; //refVal指向ival(是ival的另一个名字)
int &refVal2; //报错,引用必须被初始化
int n = 0, i = 42;
int &r = n; //r绑定了n(即r是n的另一个名字)
r = 42; //现在n的值是42
r = i; //现在n的值和i相同
i = r; //i的值和n相同
在C++语言中,一般建议使用引用类型的形参代替指针
//该函数接受一个int对象的引用,然后将对象的值置为零
void reset(int &i) //i是传给reset函数的对象的另一个名字
{
i = 0; //改变了i所引对象的值
}
//调用函数如下
int j = 42;
reset(j); //j采用传引用方式,它的值被改变
cout << "j = " << j << endl; //输出 j = 0
参考:《C++ Primer 中文版(第5版)》