首页 > 解决方案 > 通过引用从函数返回到本地引用

问题描述

我开始学习 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;
}

标签: c++reference

解决方案


推荐阅读