探讨C++的引用

引用

  • 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语言)。

猜你喜欢

转载自blog.csdn.net/qq_41799219/article/details/80135002