C++第一课:引用
C++第一课:引用
引用是C++中特有的数据类型,它区别于指针,有着指针所不具备的优势在C中如果我们想要指代一个变量,或者想要在函数中对实际变量进行操作而不是形参,指针或许是你的首选,而C++中引用在某些情况下或许是更好的选择
引用概念
引用是指一个变量的别名
举例:
int x
int& rx=x;
这里rx和x有着同等的地位,rx与x指向同一个存储单元。
引用好处
1.将引用作为函数形参时相比较指针可以提高效率。
当指针作为函数参数时,在函数内部想要对实参进行操作时,需要先找到指针变量的地址,然后取出里面存储的实参的地址,在进行操作;
而当引用作为形参时,由于引用变量和被引用变量指向的是同一个存储单元,所以节省了一步取内容和寻址的时间,提高了效率
2.并且可以规避地址溢出的发生。
因为指针变量需要开辟一个空间存储原变量的地址,可能会导致地址溢出,而引用则没有这个担忧
引用注意事项
一、必须先正常声明变量且引用变量定义是必须与已有变量绑定即:不能先声明后赋值
int x
int& rx=x;//引用变量声明成功
int y,&ry=y;//引用变量声明成功
二、引用变量只能作为一个变量的引用。即:初始化之后的等式只能达到赋值的作用
int b=1;
int c=3;
int& a=b;
cout<<a;(此时输出为1)
a=c;
cout<<a;(此时输出为3)
三、引用的数据类型必须匹配
常引用
有时候我们会希望函数无法通过引用变量来改变变量的值,这时候可以仿照常指针的方式运用const关键字定义常引用:
和常指针有两种形式一样,常引用也有两种形式:
一、const在前,&在后
此时引用变量指向的变量的值为常数,不可改变
但是引用变量指向的变量可以改变
const int& p=x;
p = y
二、&在前,const在后
此时引用变量指向的变量不可改变
但是引用变量指向的变量的值可以改变
int& const p=x;
p = 3;