我读过很多关于const引用的文章,但还没有找到我要找的内容。 您能否纠正我关于将临时变量绑定到const引用的机制的假设,以便延长生命期?const引用临时变量和后面的机制
int Foo(){return 3;}
int main(){
const int& ref = Foo();
return 0;
}
Foo
返回位于一个寄存器和通常事后驳回的临时未命名值。将它绑定到const引用会告诉编译器不要关闭它,而是将该值保存在内存中,范围为ref
,别名为ref
。
这是如何工作的?
所有关于寄存器和“内存”的讨论都是现代时代的过度简化,尤其是在讨论通常使用强大优化编译的C++等语言时。只是因为你在源头上看到了某些东西,并不意味着甚至需要甚至存在,或者存在于你可能期望的地方。例如,你编译的代码等同于'int main(){return 0;}'。 '3'永远不会存储在任何地方。 –