引用-- 给变量起别名
int a = 10;
int &b = a;
cout<<a<<endl;
cout<<b<<endl;
b = 100
cout<<a<<endl;
cout<<b<<endl;
注意事项
int a = 10;
int &b = a;
1.引用必须初始化
int &b//错误
2.引用一旦初始化后,不能改变
int a = 10;
int &b = a;
int c = 20;
b = c;//赋值操作,非更改引用。(此时abc的值全部更改为20)
引用做函数参数
int myswap (int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}
优点 :简化指针,修改实参。
引用作函数参数的返回值
1.不能返回局部变量的引用
int& test ()
{
int a = 0;
return a;
}
.......
int &ret = test();
cout<<ret<<endl;
cout<<ret<<endl;
第一次结果正确,其他就不确定了。
2.函数调用可作为左值
int& test ()
{
static int a = 0;
return a;
}
.......
test() = 1000;
cout<<ret<<endl;
引用的本质
是一个指针常量
int a =10;
int & ref = a;
ref = 20;//编译器自动转换*ref = 20