https://blog.csdn.net/weixin_40539125/article/details/81410008
下面的测试在vs2017顺利输出:
#include <iostream>
#include <string>
//C++
int getAA1()
{
int a = 10;
return a;
}
int& getAA2()
{
int a = 10;
return a;
}
int* getAA3()
{
int a = 10;
return &a;
}
void main()
{
int a1 = getAA1();
int &b = getAA2();
int *c = getAA3();
printf("a:%d,b:%d,c:%d \n", a1, b, *c);
system("pause");
}
但是调试到system时:
b,c指向的地址已经释放,不知道编译器是怎么做这件事的?