这里有两个程序。它们都有一个函数 fun(),其返回类型是对整数的引用。只有两个函数之间的区别在于,在一个函数中 x 被声明为 static int 而在另一个函数中则不是。第一个问题的输出是 10,第二个问题的输出是 30。如何?
方案一:
#include<iostream>
using namespace std;
int &fun()
{
int x = 10;
return x;
}
int main()
{
fun() = 30;
cout << fun();
return 0;
}
方案二:
#include<iostream>
using namespace std;
int &fun()
{
static int x = 10;
return x;
}
int main()
{
fun() = 30;
cout << fun();
return 0;
}