可能重复:
Returning the address of local or temporary variable
Can a local variable's memory be accessed outside its scope?
return reference to local variable
返回ref时是否为未定义的行为。到一个局部变量?
int & func(){
int x = 10;
return x;
}
int main() {
int &y = func();
cout << y << endl;
}
答案 0 :(得分:7)
是的。当函数结束时,变量不再可用。
你不幸的是它似乎有效。问题是,内存未被清除,因此10
仍然存在,但它可以随时回收,所以它绝对不安全。
答案 1 :(得分:5)
如果你想获得技术,返回它不是未定义的行为。当您尝试使用返回的内容时,您只会获得未定义的行为。