可能重复:
返回对局部变量的引用
我碰巧发现这个代码返回5.可以这样写,或者一定要避免?
int& f() {
int i = 5;
return i;
}
int main(){
cout<<f()<<endl;
}
Run Code Online (Sandbox Code Playgroud)
sep*_*p2k 10
如果它有效,它只能偶然起作用.这是未定义的行为,绝对应该避免.
f返回的那一刻,不再能保证i生存的内存会发生什么,以及当你尝试访问它时会发生什么.