2
3 using namespace std;
4
5 //结论:引用做返回值时,不要返回局部变量
6 int& getA()
7 {
8 int a=10;
9 return a;
10 }
11
12 int main()
13 {
14 int main_a1=getA();//int main_a1=int &temp=a=10
15 cout<<main_a1<<endl;//此时main_a1=10,此时int a会被系统回收
16 int &main_a2=getA();//int &main_a2=int &temp=a=10
17 cout<<main_a2<<endl;//此时main_a2=10,应为此时还没有压栈,main_a2还保留了之前的值
18 cout<<main_a2<<endl;//在这里进行压栈,此时main_a2的值就会变了
19
20 //引用可以作为左值
21 getA()=1000;
22 return 0;
23 }
C++学习第四篇_C++引用的使用 二
本文探讨了C++中使用引用作为函数返回值时可能遇到的问题,特别是返回局部变量的引用所导致的不确定行为,并通过示例代码展示了这一现象。

被折叠的 条评论
为什么被折叠?



