1.概念
- 引用不是新定义一个变量,而是给已存在的变量取一个别名,编译器不会为引用的变量开辟内存空间,它和它引用的变量共用一块内存空间。
2.用法
- 类型 &引用变量名(对象名) = 引用实体
- 注意:引用类型必须和引用实体是同种类型的
3.特性
-
引用在定义时必须初始化
-
一个变量可以有多个引用
-
引用一旦引用一个实体,再不能引用其他实体
4.常引用
-
声明方式:const 类型 &引用名 = 目标变量名;
-
在隐式转换中,会生成临时变量,而临时变量是由编译器生成的,具有常属性,不能被修改,从而使引用的目标称为const,达到了引用的安全性
-
引用时,对权限有一个要求:权限只能缩小,不能放大
-
eg:
5.引用的场景
- 做参数
void swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
- 做返回值
int& fun(int a, int b)
{
int value = a + b;
return value;