为什么'static'关键字允许函数返回正确的引用?

时间:2018-07-28 12:00:15

标签: c++ reference static

为什么第一个代码不起作用(运行时错误)而第二个代码却起作用? 代码1:

#include<iostream>
using namespace std;

int &fun()
{
    int x = 10;
    return x;
}
int main()
{
    fun() = 30;
    cout << fun();
    return 0;
}

代码2:

#include<iostream>
using namespace std;

int &fun()
{
    static int x = 10;
    return x;
}
int main()
{
    fun() = 30;
    cout << fun();
    return 0;
}

这两个代码段均来自geeksforgeeks(https://www.geeksforgeeks.org/references-in-c/)。

0 个答案:

没有答案