1. 引用的概念和定义
引用就是为一个变量取一个别名,无论是通过原名还是别名进行访问,访问到的都是同一块空间。
从语法上来讲,引用没有开辟额外的空间,逻辑上类似于只有同类成员的联合体(引用类型和引用对象不对应的情况,详见“4. const引用”部分)。
进行引用的方式是:
类型& 引用别名 = 引用对象;
int a = 0;
int& ra = a;// 进行引用
C++中为了避免引入太多的运算符,会复用C语言的一些符号,比如前面的>>,这里引用也和取地址使用了同一个符号&,大家注意使用方法角度区分就可以。
int main()
{
int a = 0;
// 引⽤:b和c是a的别名
int& b = a;
int& c = a;
// 也可以给别名b取别名,d相当于还是a的别名
int& d = b;
++d;
// 这⾥取地址我们看到是⼀样的
cout << &a << endl;
cout << &b << endl;
cout << &c << endl;
cout << &d << endl;
return 0;
}
这里的a,b,c,d共用一块空间,所以输出的结果是4个1。
2. 引用的特性
• 引用在定义时必须初始化
• 一个变量可以有多个引用
• 引用一旦引用一个实体,再不能引用其他实体
其中,第一点和第三点是区别于指针来说的,指针在定义时可以不初始化,并且可以改变指向的空间,而引用则与之不同。