引用做函数的返回值
不要返回局部变量的引用
// 错误
int& test01(){
int a = 10;
return a; // 局部变量在栈区,函数执行完会被释放
}
// 正确
int& test01(){
static int a = 10;
return a; // 静态变量在全局区,在程序结束后系统释放
}
函数的调用可以作为左值(函数可以被等号复制)
int& test01(){
static int a = 10;
return a;
}
int &b = test01();
test01() = 1000; // b的值为1000
引用的本质: 在C++内部实现是一个指针常量