什么是引用
定义:类型+&+变量名 = 另一个变量名
int &p = a;
引用不是新定义一个变量,而是给已存在变量取了一个别名,它与引用的变量共用同一块内存空间。
特点
- 定义引用时必须给初始化
- 没有空引用
- 没有所谓的二级引用
- 一个变量可以有多个引用
常量引用
作用:常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参改变实参
示例:
//引用使用的场景,通常用来修饰形参
void showValue(const int& v) {
cout << v << endl;
}
int main() {
const int& ref = 10;
//ref = 100; //加入const后不可以修改变量
int a = 10;
showValue(a);
return 0;
}
引用注意事项
- 引用必须初始化(上来就要告诉他他是谁的)
- 引用在初始化后,不可以改变(是你的就是你的)
示例:
int main() {
int a = 10;
int b = 20;
//int &c; //错误,引用必须初始化
int &c = a; //一旦初始化后,就不可以更改
c = b; //这是赋值操作,不是更改引用
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
system("pause");
return 0;
}
引用做函数参数
**作用:**函数传参时,可以利用引用的技术让形参修饰实参
**优点:**可以简化指针修改实参
示例:
//1. 值传递
void mySwap01(int a, int b) {
int temp = a;
a = b;
b = temp;
}
//2. 地址传递
void mySwap02(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
//3. 引用传递
void mySwap03(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}