gpt4 book ai didi

c++ - 返回对局部变量的引用

转载 作者:可可西里 更新时间:2023-11-01 18:36:05 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Returning the address of local or temporary variable
Can a local variable’s memory be accessed outside its scope?

即使知道以下片段会发生什么,也有助于理解它是如何发生的。接下来是四个问题。

给定:

int& foo()
{
int i = 1;
return i;
}

并且知道在下面对local named i 的引用被取消引用到分配给 intVal 的 temp 并且 local i 在结束时消失foo()

int  intVal = foo();

第一个问题 - 在下文中,表达式的右侧与上面相同,那么在这种情况下,编译器会看到左侧,并且根据上下文,知道不取消引用返回的引用, 而不是创建一个新的引用并用它初始化?

第二个问题 - 当 intRef 在范围内时,仅此一项就可以使 local i 保持不变?

int& intRef = foo();

第三个问题 - 下面的 intPtr 获取 local i 的地址。那么,编译器是否使用赋值的上下文并决定在获取引用地址之前不取消引用以获取值(而不是说获取包含取消引用值的临时地址)?

第四个问题 - 当 intPtr 在范围内时,local i 是否仍然存在?

int* intPtr = &foo();   

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com