指针和引用的区别

来源:互联网 发布:淘宝拍卖汽车可信吗 编辑:程序博客网 时间:2024/06/06 13:19

1.指针是一个实体,引用仅是个别名;——指针所占空间大小固定,等于其本身大小,一般为4个字节,引用不占内存空间(因为引用和它所指向的对象占用了相同的空间,相当于声明的引用不占空间)。


2. 指针可以为空,可以初始化也可以不初始化,声明引用必须初始化。因此,就可能产生野指针,使用指针前必须判断是否为空,引用不必。


3. 非空指针的值等于它所指向对象的地址,引用的值等于它所指向的对象。


4. 指针可以改变指向,引用不可改变其指向。


5. 引用更加安全。指针更灵活,引用更安全 

1.引用比指针更安全,比如:如果调用一个某类型空悬指针(空悬指针:此指针的值不是空,但

是它指向的内容已经被delete了)的成员方法,可能导致系统崩溃;但是引用永远不能是空的

,就不存在这个问题.

2.指针比引用更灵活

1> 你可以让一个函数的最后一个参数的类型是指针,缺省值是NULL;在这个函数里面检查

此指针的值,如果是空则做1,如果不是空则做2(会用到这个指针).而如果用引用,则无法实

现.

2> 对指针可以有++, --这样的操作;而引用永远只能指向一个地方.而且只能在初始化的

时候指定,以后就不能重新指向别的对象了.

原创粉丝点击