引用:
格式: 类型名 & 引用名=某变量名;
eg:
int n=4;
int & r=n;//r 引用了n,
引用:
1.定义引用时一定要将其初始化为引用某个变量。
2.初始化后,它就一直引用该变量,不会在引用别的变量了。
3.引用只能引用变量,不能引用常量和表达式。
double a=4,b=5;
double & r1=a;
double &r2=r1;//r2也引用a
r2=10;
cout<<a<<endl;//输出10
r1=b;//r1没有引用b,只是把b的值赋给a
cout<<a<<endl;//输出5
简单示例:
void swap(int*a,int*b)
{
int tmp;
tmp=*a;*a=*b;*b=tmp;
}
int n1,n2;
swap(&n1,&n2);//交换n1,n2值
两个程序的功能相同
void swap(int &a,int &b)
{
int tmp;
tmp=a;a=b;b=tem;
}
int n1,n2;
swap(n1,n2);//交换n1,n2值
常引用:
在定义引用时,前面加const 关键字,即为“常引用”。
eg:
int n;const int &r=n;
r 的类型是 const int &
不能通过常引用求修改其引用的内容:
int n=100;
const int &r =n;
r=200;//编译错
n=300;//正确
常引用和非常引用的转换:
const T&和T&是不同的类型!!!!
T& 类型 的引用或T 类型的变量可以用来初始化 const T&类型的引用。
const T 类型的常变量和 const T& 类型的引用则不能用来初始化T&类型的引用,除非进行强制类型转换。