定义
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字,一旦把引用初始化为某个变量,就可以使用该引用名称来指向变量。
创建引用
变量名相当于变量附属在内存位置中的标签,可以把引用当成是变量附属在内存位置中的第二个标签。因此可以通过原始变量名称或者引用来访问变量的内容。
eg:
int x=9;
int& r=x; //意思是给x变量起了一个新名字r,因此r不可再次被重新定义
- &称为“引用符”,读作引用
- 引用必须初始化,无空引用,并且引用不分等级
引用作为函数参数
C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能。
因为引用变量是变量的别名,对别名的访问就是对其所关联变量的访问,形参使用引用类型时,这意味着修改形式参数会影响实际参数。
eg:
#include<iostream>
using namespace std;
void swap(int& x,int& y)
{
int temp=x;
x=y;
y=temp;
}
int main()
{
int a,b;
a=3;b=10;
cout<<"a="<<a<<" b="<<b<<endl;
swap(a,b); //交换之后a,b本身的值也会改变
cout<<"a="<<a<<" b="<<b<<endl;
}
引用作为返回值
通过使用引用来代替指针,会使C++程序更容易阅读和维护,C++函数可以返回一个引用,方式与返回一个指针类似。
当函数返回一个引用时,则返回一个指向返回值的隐式指针,这样,函数就可以放在赋值语句的左边。
eg:
#include<iostream>
using namespace std;
int a[]={2,6,8,9,1};
int& value(int i){
return a[i];
}
int main(){
cout<<"改变前的值:"<<endl;
cout<<a[1]<<endl;
value(1)=100;
cout<<"改变后的值:"<<endl;
cout<<a[1]<<endl;
return 0;
}
- 引用主要用作函数的形参和返回值
- 一个引用与某变量关联,就不能再与其他变量关联
- 定义引用时,应同时对它初始化,使它与一个类型相同的已有变量关联