1.引用的概念及用法
类型& 引用变量名=已定义过的变量名
例:int& b = a;
引用的特点:①一个变量可以取多个别名②应用只能在初始化时引用一次,不能改变为其他变量。
例:int a=10;
int& b=a;//b是a的别名
int i=100;
b=i;//此步仅为赋值
const引用:const int a=10; const int&b=a; const int&c=20;
2.引用做参数
int d=10;
double e=d;
const double& f=d;
修改的权限可以缩小,但不能放大
void swap(int& l,int& r)
{
int tmp=l; l=r; r=tmp;
}
swap(l,r);
3.引用做返回值
int& add(int a,int b)
{
int c=a+b; return c;
}
int& ret=add(1,2);
cout<<ret<<endl;
4.传值返回
int add(int a,int b)
{
int c=a+b; return c;
}
const int& ret=add(1,2);
cout<<ret<<endl;
5.引用和指针的区别
int& ret=add(1,2);
//add(10,20);
①不要返回一个临时变量的引用,出了作用域则不存在了。
②出了作用域对象或变量存在,尽量使用引用,可以节省空间(静态、全局)
③sizeof引用得到的是所指向的变量的大小,而sizeof指针是对象地址的大小
④指针和引用自增(++)和自减(--)意义不一样
⑤引用必须指向有效的变量 ,指针可以为空
⑥引用比指针更安全,但指针比引用更灵活