一、引用简介
- 基本概念
引用为对象起了一个别名。这个别名等价于这个对象。 - 语法
类型名 & 引用名 = 某变量名;
int n = 4;
int &r = n; //定义一个引用,引用变量n
//r的数据类型:引用整型变量的 引用类型
二、引用的特点
- 定义引用时必须初始化。
- 一旦引用一个变量不可再改变。
- 只能引用变量,不能引用字面值和表达式。
注意:引用并非对象,它只是一个为已经存在的对象起的一个别名。
三、引用的应用举例
//例1:交换两个数
void swap( int & a, int & b)
{
int tmp;
tmp = a; a = b; b = tmp;
}
int n1, n2;
swap(n1,n2) ; // n1,n2的值被交换
//例2:引用作为函数的返回值
int n = 4;
int & SetValue() { return n; } //函数:返回全局变量n的引用
int main()
{
SetValue() = 40; //通过全局变量n的引用修改n的值
cout << n;
return 0;
} //输出: 40
四、引用的本质
引用在C++的底层实现是一个有名字的常量指针。
Type& name; //等价于:
Type* const name;
由于这个本质:
- 引用在定义时必须初始化
- 引用类占用的内存与指针一样大
由于C++定义引用概念的目的是让它起到一个别名的作用,因此C++隐藏了引用占用存储空间这一细节。