引用注意事项
-
引用必须初始化
-
引用在初始化后,就不能更改
和指针比较类似,但也有不同
引用做函数参数
与指针相比,可以简化修饰实参
引用做函数的返回值
-
不要返回局部变量的引用
-
函数的调用可以作为左值
int & test1()
{
int a = 10; //局部变量存放在栈区
return a;
}
int & test2()
{
static int a = 10; //静态变量,存放在全局区,全局区上的数据在程序结束后系统释放
return a;
}
test2() = 1000;//能够进行修改
常量引用
用来修饰形参,防止误操作
引用的本质
在c++内部实现是一个指针常量
int a = 10;
//自动转换为 int* const ref = &a;指针常量是指针指向不可更改,也说明为什么引用不可更改
int& ref = a;
ref = 20;//内部发现ref是引用,自动帮我们转换为:*ref = 20;