变量的引用 就是给变量起一个别的名字,两个变量的地址是相同的。
语法
数据类型 &别名 = 原名
int a = 10;
int &b = a; // a 和 b 都是 10
b = 20; // a 和 b 都是 20
注意事项
- 引用必须初始化
int &c; //错误
int &c = a; //正确
- 初始化后不能再改变
int &c = a;
c = b; // 这句话就成了赋值操作
- 不要引用函数中的局部变量
int &test()
{
int a = 10;
return a;
}
int main()
{
int &p = test(); // 不合法,a已经被释放
}
4.引用函数可以作为左值
int& test02()
{
static int b = 4;
return b;
}
int main()
{
int& ref2 = test02();
cout << ref2 <<endl;
test02() = 1000; // 其实是引用了变量b
cout << ref2;
}
本质
引用的本质其实是const 指针 ,指向不可变,但指向地址里的值可以变
int a = 1;
int &b = a; //相当于int const *b = &a;
b = 30; // 相当于*b = 30;
//但是b是引用类型,编译器帮我们简化了操作