C++学习--引用
一、引用变量的三个特性:①引用和它引用的对象在数值上是联动的,改变你也就改变了我,改变我也就改变了你。
②从一而终,引用在初始化是绑定某个对象后是不能改变的,如:
int v,k,h; //定义三个int的变量
int &rv=v; //定义了一个和v绑定的引用rv
rv=3; //此时rv的值变为3,v的值也变为3
v=5; //此时v的值变为5,rv的值也变为5
k=rv+2; //此时k=5+2=7。
h=12; //此时h=12
rv=h; //引用是从一而终的,所以这句话只相当于一个简单的赋值语句,rv=12, r=12
rv=20; //rv=20, r=20
③引用在创建时必须初始化,如:int& rv; rv=r; 是错误的。
二、引用作为函数参数:作用和指针传递一样能改变原来参数的值,并且不需要把实参的一个拷贝传递给形参,节约的空间,引用传递具有更高的效率。
三、引用作为函数返回值:如果一个函数返回的是一个引用类型,那么该函数可以被当作左值使用。
int i;
int& f1(int&);
int f2(int);
f1(i)=3; //这句话是正确的,相当于i=3
f2(i)=4; //这句话是错误的
int& f1(int&i)
{
return i;
}
int f2(int i)
{
return i;
}