C++中,引用其实是变量的别名,引用可以分为以下几种:
(1)基本数据类型的引用:
int a=0;
int &b =a;
b=10;
cout<<"a="<<a<<endl;
则打印结果:a=10
;
引用必须要初始化,而且对引用变量进行操作,所达到的效果和对变量进行操作时一样的。
(2)结构体类型的引用:
//定义一个结构体类型
typedef struct{
int x;
int y;
}A;
A c;//定义一个结构体变量
A &c1=c;
c1.x=5;
c1.y=3;
cout<<c.x<<" "<<c.y<<endl;
则打印结果是:5 3
。和基本数据类型的引用一样。
(3) 指针类型的引用:
格式为:类型 *&指针引用名=指针;
int a=10;
int *p=&a;//指针p指向变量a;
int *&q=p;//指针q引用指针p;
*q=20;
cout<<a<<endl;
则打印结果为:20
。
q指针引用p指针,p指针指向a,所以q指针也指向a。指针指向变量值为20,则a的值也相应改变为20。