C++ 引用 概念
引用即对另一个变量的映射,或者说是另一个变量的别名,用引用名称和变量名称都可以访问变量内容
定义
int num = 10;
int &r = num; // 创建了引用r
printf("%d\n", num); // 10
printf("%d\n", r); // 10
与指针的不同
- 引用在声明时必须初始化,这点有点像常量,指针可以声明之后再被赋值
- 引用不能更换被引用对象,从创建开始就只能引用一个变量,而指针可以更换指向对象
- 不存在空引用,其必须引用一个合法的内存地址,而指针可以是空指针
常量引用
通常情况引用只能引用和自身类型相同的值
int num = 10;
int &a = num; // 引用a只能引用int型的对象
但由const
修饰的引用不同,其可以引用和自身不同类型的引用(前提是,系统能够转换过来的类型),甚至可以引用一个字面量
int &a = 120; // 错误
const int &a = 120; // 正确