不要返回局部变量的引用
#include<iostream>
using namespace std;
//引用的注意事项
//1、 引用必须引一块合法的内存空间
//2、不要返回局部变量的引用
int& doWork()
{
int a = 10;
return a;
}
void test04()
{
//int &a = 10; // 引用必须引一块合法的内存空间
int &ret = doWork();
cout << "ret = " << ret << endl;
}
int main(){
test04();
system("pause");
return EXIT_SUCCESS;
}
修改如下:
#include<iostream>
using namespace std;
//引用的注意事项
//1、 引用必须引一块合法的内存空间
//2、不要返回局部变量的引用
int& doWork2()
{
static int a = 10;
return a;
}
void test05()
{
int &ret = doWork2();
//如果函数的返回值是引用,那么这个函数调用可以作为左值
doWork2() = 1000; //相当于写了 a = 1000;
cout << "ret = " << ret << endl;
}
int main(){
test05();
system("pause");
return EXIT_SUCCESS;
}