目录
一、引用是什么?
二、引用的注意事项
1.引用必须初始化
2.一个变量可以有多个引用
3.引用一旦引用一个实体,再不能引用其他实体
三、引用的用法
1.引用做参数
2.引用做返回值
3.常引用
四、引用和指针的区别
一、引用是什么?
引用在C++中就是起别名,不开辟新的空间,可以通过操作别名来操作初始的变量。
如下,我们通过引用b作为a的别名,操作b而改变了a的值。实际上b和a共用同一块空间。
int a = 0; int& b = a; b = 1; cout << a << endl;
二、引用的注意事项
1.引用必须初始化
int a = 10;
int& b;//错误
2.一个变量可以有多个引用
int a = 10;
int& b = a;
int& c = a;
3.引用一旦引用一个实体,再不能引用其他实体
int a = 10;
int& b = a;
int c = 20;
b = c;//把c赋值给b而不是让b变成c的别名
三、引用的用法
1.引用做参数
int a = 10; int& b;//错误
2.一个变量可以有多个引用
int a = 10;
int& b = a;
int& c = a;
3.引用一旦引用一个实体,再不能引用其他实体
int a = 10;
int& b = a;
int c = 20;
b = c;//把c赋值给b而不是让b变成c的别名
三、引用的用法
1.引用做参数
int a = 10; int& b = a; int c = 20; b = c;//把c赋值给b而不是让b变成c的别名
三、引用的用法
1.引用做参数
引用做参数,参数中的ab就是xy的别名,因此交换ab中的值,就是在交换xy中的值。
这样好处在于不用产生临时变量,提高效率。形参的改变可以影响实参。
void swap(int& a, int& b)//a,b就是x,y的交换
{
int temp = a;
a = b;
b = temp;
}
2.引用做返回值
传引用返回,不会生成c的拷贝,直接返回c的引用。
int& Add(int a,int b)
{
int c = a + b;
return c;
}
3.常引用
权限放大,错误
const int a = 0; int& b = a;
权限相等,可行
const int a = 0; const int& b = a;
权限缩小,可以
int a = 0; const int& b = a;
四、引用和指针的区别
1.引用是别名,指针是放地址的变量
2.引用没有开辟新的空间,而指针需要有一个变量空间来记录地址
3.指针更加灵活,可以有更多灵活的操作,但相较引用就会显得不太安全



