来源:远方网络 | 2006-1-6 | (有2201人读过)
我们在图中看到,由于函数仍然是普通方法返回,所以仍然会有一个副本临时变量产生,只不过,这一次只是返回一个目标地址,在main中目标地址被赋予了引用pn
下面我们再看一种情况,这是返回引用给变量的情况!
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream> #include <string> using namespace std;
float c; float& test(float,float); void main(int argc,char* argv[]) { float pn=test(3.0f,1.2f); cout<<pn; cin.get(); }
float &test(float a,float b) { c=a*b; return c; }
这种返回引用给变量的情况下,在内存中,test()所在的栈空间内并没有产生临时变量,而是直接将全局变量c的值给了变量pn,这种方式是我们最为推荐的操作方式,因为不产生临时变量直接赋值的方式可以节省内存空间提高效率,程序的可读性也是比较好的!
它在内存中的情况见下图!
|