前言
C++新增加了一种复合类型,叫做引用变量。引用变量是已定义的变量的别名(学过python的人对这个概念应该很容易理解),例如,如果将twain作为element变量的引用,则可以交替使用twain和element来表示该变量。下面我们将介绍引用的基础知识。
创建引用变量
我们要将rodents作为rats变量的别名,可以这样做:
int rats;
int &rodents = rats;
C++给&符号赋予了另一个含义,将其用来声明引用变量。
这样我们就可以使用rodents了
#include <iostream>
int main()
{
using namespace std;
int rats = 101;
int &rodents = rats;
cout << "rats = " << rats;
cout << ", rodents = " << rodents << endl;
rodents++;
cout << "rats = " << &rats;
cout << "rodents = " << &redents << endl;
return 0;
}
下面是输出结果
rats = 101, rodents = 101
rats = 102, rodents = 102
rats address = 0x0065fd48, rodents address = 0x0065fd48
从程序的运行结果中,我们可以看出rats与rodents的地址是相同的,对rodents的操作就相当于对rats的操作。
何时使用引用参数
使用引用参数的原因
- 程序员能够修改调用参数中的数据对象。
- 通过传递引用而不是整个数据对象,可以提高程序的运行速度。
对于使用传递的值而不做修改的函数
- 如果数据对象很小,如内置数据类型或小型结构,则按值传递。
- 如果数据对象是数组,则使用指针,因为这是唯一的选择,并且指针声明为指向const的指针
- 如果数据对象是较大的结构,则使用const指针或者const引用,以提高程序的运行效率。这样可以节省复制结构所需要的时间和空间。
- 如果数据对象是类对象,则使用const引用。类设计的语义常常要求使用引用,这是C++新增这项特性的主要原因。
对于修改调用函数中数据的函数
- 如果数据对象是内置数据类型,则使用指针。
- 如果数据对象是数组,则只能使用指针。
- 如果数据对象是结构,则使用引用或指针。
- 如果数据对象是类对象,则使用引用。