引用

一、引用简介

  1. 基本概念
    引用为对象起了一个别名。这个别名等价于这个对象。
  2. 语法
    类型名 & 引用名 = 某变量名;
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++隐藏了引用占用存储空间这一细节。

posted @ 2019-11-24 17:16  江南又一春  阅读(146)  评论(0编辑  收藏  举报