c++ - 通过引用从函数返回到本地引用
问题描述
我开始学习 C++。我不明白通过引用返回。在下面的代码中,我们i
在函数内部有一个局部变量getInt()
。的范围i
取决于getInt()
。当我们退出getInt()
变量i
时就会消失。如果我们使用以下函数,我们将遇到分段错误,因为我们正在返回一个对不再存在的变量的引用。
int& getInt() {
int i = 10;
return i;
}
我不明白的是,当我分配i
给引用并返回该引用时,我怎么会设法获得正确的值,即10
. 我们不是返回对在函数存在后将被销毁的变量的引用吗?
// Online C++ compiler to run C++ program online
#include <iostream>
int& getInt() {
int i = 10;
int &x = i;
return x;
}
int main() {
int &x = getInt();
std::cout << x << std::endl;
return 0;
}
解决方案
推荐阅读
- linux-device-driver - 在设备树中,节点的中断输出单元大小为 1,但其中断父节点似乎有 #interrupt-cells = 3。为什么?
- google-sheets - 表格:查找范围内第一次和最后一次出现的值
- r - 如何解决 PowerBI 中的 ggpairs 错误?
- apache-flink - Flink - 利用输入分区来避免任务管理器之间的通信
- java - 画中画,我使用下面的广播接收器进行媒体控制
- flutter - 输入'列表
' 不是类型 'List 的子类型 ' 在类型转换中 - javascript - 'TypeError:无法设置未定义的属性'创建'?
- java - 如何使用弹簧应用程序检查亚马逊 s3 存储桶的总大小和剩余大小?
- html - 如何在引导程序4中垂直对齐无序列表
- firebase - Flutter:Fire Base 存储图像上传的后期初始化错误