引用变量
引用变量
引用变量是什么?
给各位举个例子:
假设你叫小明(原变量),但是你的朋友都叫你明哥(引用)————这是两个不同的名字,但是指的都是你,也就是小明
引用变量为一个已经存在的变量创造一个别名,引用变量和原变量共享同一块内存空间,对引用的任何读写操作,都会直接作用于原变量本身 —— 引用不是新变量,只是原变量的 “另一个名字”。
怎么定义和使用引用变量?
1. 基本语法
引用变量格式为:元素类型 名称=要等于的变量
注意:引用变量一定要在声明时就赋值!而且一旦赋值,就永远绑定无法改变代表对象!
int a;
a = 10;
int& ref_a=a;
ref_a = 20;
cout << a;
cout << ref_a;
return 0;
输出
2020
2. 作为函数参数
void double_copy(int a) {
a = a * a;
}
void double_reference_variable(int& a) {
a = a * a;
}
void double_normal(int* a) {
*a = (*a) * (*a);
}
int main() {
int a=2;
double_copy(a);
cout << "修改副本后的值为:" << a<<endl;
double_reference_variable(a);
cout << "使用引用变量:" << a<<endl;
a = 2;
double_normal(&a);
cout << "使用指针:" << a<<endl;
return 0;
}
输出
修改副本后的值为:2
使用引用变量:4
使用指针:4
3. 只读引用
加上const即可
const int &a1=a;
与指针的区别
引用变量无法取代指针
指针:
- 可先定义,后赋值
- 可以随时修改指向变量
- 可以为空
- 占用及少部分的内存
- 有空指针,野指针的风险
引用变量:
1.定义时必须赋值
2. 定义之后不可改变指向
3. 不可为空
4. 内存方面无额外开销,只是别名
5. 安全性极高
注意
不能定义引用变量的引用变量,这在C++中不被允许
总结
1.引用变量是函数的别名,与原函数共享内存,核心优点是简洁,安全,高效
2.引用比指针更安全,但灵活性不如指针,日常优先使用引用,仅在需要频繁指向不同对象时使用指针

浙公网安备 33010602011771号