什么是引用
引用为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声明符写成&name
的形式来定义引用类型,其中name
是声明的变量名。
引用必须初始化
与初始化变量不同。定义引用时,程序把引用和它的初始值绑定到一起,而不是将初始值拷贝给引用。一旦初始化完成,无法将引用绑定(bind)到另一个对象。所以引用必须初始化
引用即别名
定义了一个引用之后,对其进行的操作都是在与之绑定的对象上进行的
int a = 10;
int &ten = a;
ten++; //等同于a++, a变为11
因为引用本身不是一个对象,所以不能定义引用的引用。
引用的定义
允许在一条语句中定义多个引用,其中每个引用标识符都必须以符号&
开头:
int a = 10, b = 100;
int &ref1 = a, c = ref1, &ref2 = b;
//其中ref1 ref2是引用 c是int,被初始化为ref1的值
引用只能绑定在对象上,而不能与字面值或表达式的计算结果绑定到一起
int &falseRef_1 = 10 // 错误:引用类型的初始值必须是一个对象,不能是字面值。
double pi = 3.14
int &falseRef_2 = pi; // 错误:引用的类型(int)与初始值的类型(double)不匹配