严格来说,当使用术语“引用”时,指的其实是“左值引用”。
引用(reference)为对象起了另外一个名字。
例: int ival = 1024;
int &refVal = ival; // refval指向ival(ival是另一个名字)
int &refVal2; // 报错:引用必须被初始化
定义引用时,程序把引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。
因为无法令引用重新绑定到另外一个对象,因此引用必须被初始化。
注:1)引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。
2)定义了一个引用之后,对它的所有操作都是在与之绑定的对象上进行的。
3)int &refVal3 = retVal; //正确:refVal3绑定到了那个与refVal绑定的对象上,这里就是绑定到ival上
4)因为引用本身不是对象,所以不能定义引用的引用。
5)允许在一条语句中定义多个引用,其中每个引用标识符都必须以符号&开头。
6)几乎所有的引用的类型都要和与之绑定的对象严格匹配。
7)引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。

浙公网安备 33010602011771号