为什么函数的值变成静态的了?新手请教
小弟不才,刚刚学习到引用这里,int a; int &b=a;这个我知道是引用,以后操作b就等于操作a了,但是对于函数的引用小弟没懂,如有如下程序:#include <iostream>
using namespace std;
int a = 4;
//函数返回a的引用,即a的别名!!!!
int &f(int x) //这里f前加的那个“&”符号后函数到底发生了什么变化????
{
a = a + x;
return a;
}
int main()
{
int t = 5;
cout << f(t) << endl;//输出 9 (a=9) t=5
f(t) = 20;//先调用,再赋值 a=20 t=5 为什么这里能对函数赋值?
cout << f(t) << endl;//输出25 (a=25) t=5
t = f(t);//先调用,再赋值 a=30,t=30 为什么这里a=30?
cout << f(t) << endl;//60 为什么这里a=60? 为什么每次执行后a的值保留了下来参与了下次的执行?不是要加static才是这样的么?
return 0;
}
[ 本帖最后由 mnb1237273 于 2014-6-26 16:50 编辑 ]