作用:绑定引用到对象
- 引用类型的变量必须使用派生自引用类型的对象进行初始化,或使用可转换为派生自引用类型的类型的对象进行初始化。
- 使用临时对象初始化引用的唯一方式是初始化常量临时引用。
- 初始化后,引用类型变量始终指向同一对象;不能将它修改为指向另一个对象。也就是说,一旦初始化,则不能更改引用使之引用另一对象。
举个例子:
#include <stdio.h>
int iVar;
long lVar;
int main(int argc, char **argv)
{
// 引用类型的变量必须使用派生自引用类型的对象进行初始化
// long & longRef1 = iVar; //错误:将类型为‘long int&’的引用初始化为类型为‘int’的表达式无效1
long & longRef2 = lVar;
const long & longRef3 = iVar;
const long & longRef4 = lVar;
printf("%ld\t", longRef2);
longRef2 = 23L;
//longRef3 = 11L; // 错误:向只读形参‘longRef3’赋值
//longRef4 = 11L; // 错误:向只读形参‘longRef4’赋值
printf("%ld\n", longRef2);
return 0;
}
尽管语法相同,但引用类型变量的引用和引用类型变量的赋值在语义上不同:
- 初始化指定引用类型变量指向的对象;
- 赋值通过引用向引用目标对象赋值。