为什么我不能/不应该将对局部变量的引用返回给函数?是不是因为函数执行完成后临时变量会自动销毁?
const string & wrap(string & s1, const string & s2){
string temp;
temp = s2 + s1 + s2;
return temp;
}
这个如何:
const string & wrap2(const string & s1, const string & s2){
return (s2 + s1 + s2);
}
原文由 Pwnna 发布,翻译遵循 CC BY-SA 4.0 许可协议
在函数内部本地声明的变量在堆栈上分配。当一个函数返回给调用者时,变量所在的堆栈空间被回收并且不再可用,并且那里的变量不再存在(它们确实存在,但你不能使用它们,它们可以是随时覆盖)。所以,是的,基本上你说的。