引用是变量的别名,引用必须初始化。
1.基本数据类型的引用
int a =3;
int &b = a; //引用必须初始化
b = 10;
执行后a和b的值均为10.
2.结构体类型的引用
typedef struct{
int x;
int y;
}Coor;
Coor c1;
Coor &c = c1;
c.x = 10;
c.y = 20;
执行后c1的x和y分别为10和20。
3.指针类型的引用
格式: <类型> *&<指针引用名> = <指针>;
int a = 10;
int *p = &a;
int *&q = p;
*q = 20;
执行后a,p和q所指向的值均为20。
4.引用作为函数参数
交换2变量的值的指针写法:
void fun(int *a, int *b){
int c = 0;
c = *a;
*a = *b;
*b = c;
}
int x = 10, y = 20;
fun(&x, &y);
该写法复杂,容易出错,难看懂。
使用引用的写法:
void fun2(int &a, int &b){
int c = 0;
c = a;
a = b;
b = c;
}
int x = 10, y = 20;
fun(x, y);