C++ 返回本地引用
运行代码时,尝试返回局部变量:C++ 返回本地引用,c++,reference,C++,Reference,运行代码时,尝试返回局部变量: #include<iostream> using namespace std; int &fun() { int x = 30; return x; } int main() { fun() = 10; cout << fun(); return 0; } 为什么编译器输出0和一些是30 返回一个引用,以引用一个局部变量,然后在范
#include<iostream>
using namespace std;
int &fun()
{
int x = 30;
return x;
}
int main()
{
fun() = 10;
cout << fun();
return 0;
}
<>为什么编译器输出0和一些是30 返回一个引用,以引用一个局部变量,然后在范围之外是C++中的未定义行为。
有时可能有效,有时可能无效。有时编译器可能会吃掉你的猫。定义一些编译器。这是未定义的行为,ideone geeks4geeks认为这是非常难看的代码。用例是什么?除此之外,您可能还需要使用静态int x=30;。投票决定重新开放:重复是指针的例子。我一直都知道计算机是靠猫和比特运行的。