含义
引用 是为对象起了另外一个名字,引用即别名。
定义
类型名& 引用名 = 变量名
eg:
int num=70;
int& r_num=num;
cout<<num<<"\t"<<r_num<<endl;
输出:
70 70
引用注意事项
- 引用并非对象,只是为一个已经存在的对象起的别名
- 引用只能绑定在对象上,不能与字面值或某个表达式的计算结果绑定在一起
int &ref _value = 10;//错误
如果想要引用指向常量可以使用const
const double& ref=100;
- 引用必须初始化,所以使用引用之前不需要测试其有效性,因此使用引用可能会比使用针效率高。
int &ref _value;//错误
引用和指针的关系
- 引用对指针进行了简单封装,底层仍然是指针
- 获取引用地址时,编译器会进行内部转换
eg:
#include <iostream>
using namespace std;
int main()
{
int num=108;
int& r_num=num;
r_num=110;
cout<<&num<<"\t"<<&r_num<<endl;
return 0;
}
等价于:
#include <iostream>
using namespace std;
int main()
{
int num=108;
int* r_num=#
*r_num=110;
cout<<&num<<"\t"<<r_num<<endl;
return 0;
}
因为两者都是指针实现,引用的效率又比指针高,所以我们推荐使用引用