版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40818798/article/details/89680886
一、基本用法
在声明变量时,在变量名前加 & 就将该变量声明为一个引用
int b = 10;
int &a = b;
-
b称为a的引用
-
a称为b的别名
-
a就是b
1.引用做函数参数(以交换为例,对比指针与引用做函数参数进行址传递)
void swap(int *x, int *y); //函数声明
swap(&x,&y); //函数调用
void swap(int *x, int *y) //函数定义
{
int *tmp = *x;
*x = *y;
*y = *tmp;
}
void swap(int &x, int &y); //函数声明
swap(x,y); //函数调用
void swap(int &x, int &y) //函数定义
{
int tmp = x;
x = y;
y = tmp;
}
2.函数返回值为引用类型
friend ostream & operator << ( ostream &,complex &);
int & operator [] (int i);
3.独立使用
int i = 10;
int &r = i;
4.指针类型的引用
-
简化指针操作,n+1级指针可间接修改n级指针的值,n级引用可间接修改n级指针的值(同级)
#include <iostream>
using namespace std;
int main()
{
int a=3;
int *p=&a;
int *&q=p;
*q=8;
cout << a << *p << *q << endl;
return 0;
}
5.常引用
-
防止或减少误操作
const int a = 10;
二、注意事项
-
引用本质是一个指针常量
-
必须进行初始化
-
初始化后不允许修改
-
不要返回局部变量的引用
-
若函数返回值为一个引用,那么该函数可作为一个左值进行运算