函数的引用返回值
这是一个很久以前遗留下的一个问题,一直不知道n为什么等于100,今天看见了就把它解决一下.
#include "iostream"
using namespace std;
int n;
int f()
{
n+=2;
return n;
}
int main()
{
f()=100;
cout<<endl;
return 0;
}
在两个函数中并没有给n赋值,为什么n的值是100呢?
int &f()是一个返回值为引用的函数,所以他返回的就是n的引用,f()=100,就相当于n=100.
运行下面这段程序你就会发现n和f()的地址其实是一样的.
#include "iostream"
using namespace std;
int n;
int &f()
{
return n;
}
int main()
{
f()=100;
printf("%p\n",&n);
printf("%p\n",&f());
printf("%d\n",n);
return 0;
}