一.引用是什么
引用其实通俗来说就是给变量起别名,别名和原名都可操作,二者在编译器中共享同一块内存,所以改变其中一个另外一个也会随之改变。
二.引用定义
语法:数据类型 & 别名=原名;
注意几点:
1.引用必须初始化
2.引用在初始化后就不能再改变(一个别名只能作为一个区域的别名)
三.引用使用场景
1.引用作为函数返回值
注意:不能返回局部变量引用
例如:
结果为:
第一行能正常输出10是因为编译器自动进行了一次保留 但是第二次开始局部变量已经被释放,不能正常输出
2.引用做函数参数
函数传参时,可以利用引用让形参修饰实参
优点:简化指针修饰实参
例如:
结果为:
可以看出,引用的效果和地址传递效果一样,而且语法更加简单明确
3.常量引用
常量引用常常用来修饰形参,防止误操作
首先看下面的代码
这里错误的原因是引用必须引一块合法的内存空间,像局部变量啥的,该处代码存在错误
而加上const之后:
没有错误,原因是加上const之后,编译器相当于自动将代码转化为
int m=10;
int temp=10
const int &p=temp;
这样可以使得程序正确,值得注意的是,但是加上const之后,变为只读状态,其值已不可以修改
那么在定义函数的时候如果形参采用常量引用,就可以防止定义函数体中误操作改变形参值而改变实参值(因为引用作为函数形参)
有问题欢迎指出!