引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int a; int&ra=a; //定义引用ra,它是变量a的引用,即别名
【例2】引用型的指针
链表创建时,有这样一段操作去建立头指针。
void setnull(Node *&p)
{
p = (Node *)malloc(sizeof(Node));
p-> next = NULL;
}
指针Node* p, 只能改变p指向的对象的内容,而不能改变p的指向
指针Node* &p,既能改变p指向的对象的内容,又可以改变p的指向
(1)&在此不是求地址运算,而是起标识作用。
(2)类型标识符是指目标变量的类型。
(3)声明引用时,必须同时对其进行初始化。
(4)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。
(5)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。
(6)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。