引用
1、引用的概念
1)引用就是某一变量(目标)的别名,对引用的操作与直接对变量的操作完全一样。
2)引用的声明方法:类型标识符 &引用名 = 目标变量名;(如:int &raf = a;)2、引用的规则:
1)引用被创建的同时必须要初始化。
2)不能有NULL引用,引用必须与合法的储存单元联系。
3)一旦引用类型被初始化,就不能改变引用的关系,但是可以改变引用对象的内容。3、常引用
1)常引用的声明方法:const 类型标识符 &引用名 = 目标变量名;(如:const int &raf = a;)
2)用这种方式声明的引用,不能通过引用对目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。4、指针的引用
1)指针的引用就是某一指针的一个别名,对引用的操作与直接对指针的操作是完全一样的。
2)指针引用的声明方法:类型标识符 *&引用名 = 目标变量名;(如:int *&rpy = py;)
3)*和&是两个东西,把他们两个放在一起,在某种程度上,指针的引用类型似于二级指针(指针的指针)5、引用的本质:
引用的用法非常类似指针,那么引用和指针有什么联系呢?其实,引用的本质就是指针,但是它是一种特殊的指针(一种被限制的指针)。
引用在C++中内部实现是一个常指针。 所以引用的内部就是一个用const声明的指针,也正是因为用了const,所以引用类型一旦被初始化,就不能改变引用的关系。
那么这么做的目的是什么?使用指针时一定要注意检查指针是否为空。指针所指的地址释放以后最好置NULL,否则可能存在野指针。而引用是一个被限制的指针的,所以可以有效的防止使用者在使用指针时的出现前面所说的错误,提高了安全性。
当然引用和指针的区别并不只有这些,只是它最本质的是用到了常指针。不同的语言对引用进行了不同的定义,而且C++后的很多语言都不再让开发者直接使用指针,而是只能使用引用类型(如:Java语言)。