引用和指针的一些知识
引用(reference)&
- 引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。(
引用即别名
)
int val = 1024;
int &refVal = val; // refVal指向val(是val的一个别名)
- 定义引用时,程序把引用和它的初始值绑定(
bind
)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。
int val = 1024;
int &refVal; // 报错:引用必须初始化
- 引用类型都要和与之绑定的对象严格匹配,而且,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起。
int &r = 10; // 报错:引用类型的初始值必须是一个对象
double d = 3.14;
int &ref = d; // 报错:此处引用类型的初始必须是int型对象