gpt4 book ai didi

c++ - 试图了解如何返回对自动变量的引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:59 30 4
gpt4 key购买 nike

<分区>

我试图理解为什么第二段代码可以正常编译,而第一段代码却不能。

int & test(void) {
int v = 0;
return v;
}


int main(void){
int & r = test();
return 0;
}

我知道这不起作用,因为您不能传递对将被删除的自动变量的引用。在我看来,下面的代码应该有同样的问题,但事实并非如此。

int & test1(int & x) {
return x;
}

int & test2(void) {
int x = 0;
return test1(x);
}

int main(void){
int & r = test2();
return 0;
}

似乎中间函数正在解决问题。但是为什么?

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