一、引用的介绍
引用是给已存在的变量取别名,他和变量是访问同一片空间。
引用必须在定义时初始化。int& a;//这样的代码就是错的
引用可以作为参数和返回值,这样可以减少拷贝,提高效率
例如:
int a=10;
int& ra=a;
//&a=&ra
二、引用和指针的权限问题
别名的权限<=变量的权限
int a=10;
const int& ra=a;//ra不能修改 ,只能读取
const int a=10;
int& b=a;//这个代码错误 因为b是a变量的别名,a权限是只读的,而别名b权限是可读可写
const int& b=a;//这样才对
const int a = 10;
int* p = &a;//代码错误,pr权限大于pconst int* p=&a;//这样才对
临时变量具有常性
int a=10
double& b=a;//错误 b的权限变大了,a会会被转换给double类型的临时变量,临时变量具有常性,所以应用const double& b=a;//这样才对
三、引用和指针的区别
1.引用是定义一个变量的别名,指针存储变量的地址
2.引用定义时必须初始化,指针没有要求
3.引用初始化后,就不能再引用其他实体,而指针可以
4.引用的大小是引用类型的大小,指针的大小是固定的(32位:4字节)
5.引用加1是引用的变量加1,而指针加1是向后偏移一个类型的大小
6.有多级指针,没有多级引用