这次我们特意来谈一谈引用作为函数的返回值时的情况
我们都知道,引用是内存变量的别名(外号),当一个函数的返回值是引用的话,我们就可以把这个函数当做一个变量来使用。变量能进行的操作那么这个函数也都可以
看个程序:
#include<iostream>
using namespace std;
int &max(int &a,int &b)
{
return (a>b)?a:b;
}
int main()
{
int x=2,y=3;
cout<<"x,y中较大的数是:"<<max(x,y)<<endl; //max(x,y)的返回值是x,y中较大值的引用,可以看做是个变量
max(x,y)=4; //我们可以向对变量赋值一样对返回值为引用的函数赋值
cout<<"max(x,y)="<<max(x,y)<<endl;
return 0;
}
但是需要注意的是,定义返回引用的函数时,不要返回这个函数中局部变量的引用,因为仅在函数被调用时局部变量才被分配内存,函数一旦被调用完后,局部变量就自动
消失了,函数就会返回一个无效的引用。