1.引用的另一个作用是用于返回引用的函数
2.函数返回引用的一个主要目的是可以将函数放在赋值运算符的左边。
3.注意:不能返回对局部变量的引用。
代码实例:
#include<iostream>
usingnamespace std;
// 引用作为函数返回值
int a[] = {0,1,2,3,4};
int& index(inti)
{
return a[i];
}
int main(void)
{
index(3) = 100; // 引用作为函数返回值,使得函数可以放在赋值运算符左边
// 函数返回引用,引用在函数返回的时候初始化
// index(3)在函数返回的时候被初始化为a[3];
cout<<"a[3]="<<a[3]<<endl;
return 0;
}
运行结果:
代码实例:
#include<iostream>
usingnamespace std;
// 不能返回对局部变量的引用
int& add(inta, intb)
{
int sum;
sum = a + b;
return sum;
}
int main(void)
{
int n = add(3, 4);
int& n2 = add(5, 6); // n2是引用,没有自己独立的空间
// n2的值依赖于它所引用的变量
// 如果n2所引用的变量的生命期结束了,也就是说n2是一个
// 无效的引用,那么n2的值将是不确定的。
cout<<"n2="<<n2<<endl;//局部变量虽然已经被销毁但是内容还在因此输出正确
cout<<"n="<<n<<endl;//变量输出值是正确的
cout<<"n2="<<n2<<endl;//局部变量已经被销毁,并且被覆盖,因此输出的值是不确定的
return 0;
}
运行结果: