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;
}
posted @ 2020-08-23 05:07  flyingswallow  阅读(107)  评论(0编辑  收藏  举报