【发布时间】:2014-01-02 22:00:40
【问题描述】:
int main()
{
float* ptr;
{
float f{10.f};
ptr = &f;
}
*ptr = 13.f;
// Do more stuff with `*ptr`...
}
使用/访问*ptr是有效还是未定义的行为?
我测试了与上述示例类似的情况,一切似乎都可以正常工作,就好像嵌套块中变量的生命周期由于指针而延长了一样。
我知道const&(常量引用)会延长临时对象的生命周期。指针也一样吗?
【问题讨论】:
-
您从哪里获得有关
const &延长所引用临时文件的生命周期的信息?我认为,这不是真的。 -
@TilmanVogel herbsutter.com/2008/01/01/…
-
"指针是否会延长自动存储变量的生命周期?" - 没有。
-
@TilmanVogel 是真的。然而,指针不是引用。
-
与参考文献的联系充其量是微不足道的。您的问题与临时值无关。
标签: c++ variables pointers storage automatic-storage