指针与指针型的引用


引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

 

引用的声明方法:类型标识符 &引用名=目标变量名;

 

【例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)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(指针与指针型的引用)