引用与指针的区别:
引用:一个变量的别名,是我们给变量的内存空间起另外一个名字
指针:指向另一个内存空间的变量,我们可以通过它来索引另一个内存空间的内容,本身有自己的
内存空间
区别:
<1> 指针是一个实体,间接访问变量;而引用仅是个别名,直接访问变量。
<2> 引用只能在初始化的时候初始化,以后不可改变(引用在开始的时候就绑定到了一个内存空间 (开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值);而指针可以随便改变
<3> 引用使用时无需解引用(*),指针需要解引用
<4> 引用没有 const,指针有 const,const 的指针不可变;
引用可简单认为是 &a <==> int * const p;
<5> 引用不能为空,指针可以为空
<6> “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所 指向的变量或对象的地址)的大小
联系:
<1> 引用在语言内部用指针实现(如何实现?可简单认为是 &a <==> int * const p)
引用的一些规则如下:
<1> 引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
<2> 不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
<3> 一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。
阅读(792) | 评论(0) | 转发(0) |