C++(引用四)
引用做函数返回值
-
作用:引用可以作为函数的返回值存在
-
注意:不要返回局部变量的引用
-
用法:函数调用可以做左值
示例:
#include <iostream>
using namespace std;
//返回局部变量引用
int& test01() {
int a = 10; //局部变量
return a;
}
//返回静态变量引用
int& test02() {
static int a = 20;
return a;
}
int main() {
//不能返回局部变量的引用
int& ref = test01();
cout << "ref = " << ref << endl; //vs2017 编译器会保留一次,g++上则不能通过
cout << "ref = " << ref << endl; //内存已经被释放,非法操作
//如果函数做左值,那么必须返回引用
int& ref2 = test02();
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
test02() = 1000;
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
system("pause");
return 0;
}