#pragma 引用作为返回值
#include <iostream>
using namespace std;
//返回值类型是引用 相当于创建一个匿名的临时变量
int& fa(int& r){
r++;
return r;
}
int& fb();//函数声明
//主函数
int main (){
int x = 100;
// fa(x);
// cout << x << endl;
// int y = fa(x);//这样只是把返回的引用赋值给y
int& y = fa(x);//这是相当于y引用那个返回的临时变量 所以下面如果改变y 那么原来的也会改变
cout << "x = " << x << endl;
cout << "y = " << y << endl;
y++;
cout << "y++之后 x = " << x << endl;
cout << "==============" << endl;
//这里应该打印不出来,因为该引用 引用的变量已经不存在了
int &z = fb();
cout << z << endl;//这里是编译器还没有来得及销毁的问题
return 0;
}
//返回值类型是引用 参数为空
int& fb(){
#pragma 永远不要返回局部变量的引用 除非局部变量是静态的或是在动态内存中分配的
int x = 100;
return x;
//这里之所以有警告 是因为这x是局部变量 当出了这个函数x就不存在了,所以返回值是引用(别名)没意义
}