1.引用的基本使用
作用
给变量起别名,使得多个变量访问操作同一个内存
语法
数据类型 &别名 = 原名
引用的注意事项
- 引用必须初始化
- 引用一旦创建后就不可以改变了
- 引用的数据类型必须和被引用的数据类型一样
案例
我们定义一个int类型a变量等于10,在给a变量起个别名b,此时就相当于b指向的指针指向了a指向的地址,我们我们更改a的值b得到值也会变,反之,更改b的值,a的到值也会变
int main(int argc, char* agrv[])
{
int a = 10;
// 给a起别名b
int& b = a;
printf("a=%d\n",a);
printf("b=%d\n",b);
// 更改a的值
a = 20;
printf("a=%d\n", a);
printf("b=%d\n", b);
// 更改b的值
b = 30;
printf("a=%d\n", a);
printf("b=%d\n", b);
system("pause");
return 0;
}
结果
引用做函数参数
引用做函数参数,在函数内修改形参值会直接影响到引用的变量
可以简化指针修改实参
#include <iostream>
using namespace std;
// 值传参
void swap01(int a, int b);
// 地址传参
void swap02(int* a, int* b);
// 引用传参
void swap03(int& a, int& b);
int main(int argc, char* agrv[])
{
int a = 10, b = 20;
printf("a=%d,b=%d\n",a,b);
swap01(a, b);
printf("a=%d,b=%d\n", a, b);
swap02(&a, &b);
printf("a=%d,b=%d\n", a, b);
swap03(a, b);
printf("a=%d,b=%d\n", a, b);
return 0;
}
void swap01(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
void swap02(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void swap03(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}