1.指针是一个实体,而引用仅是个别名;——指针所占空间大小固定,等于其本身大小,一般为4个字节,但引用不占内存空间(因为引用和它所指向的对象占用了相同的空间,相当于声明的引用不占空间)。
2. 指针可以为空,可以初始化也可以不初始化,但声明引用必须初始化。因此,就可能产生野指针,使用指针前必须判断是否为空,但引用不必。
3. 非空指针的值等于它所指向对象的地址,但引用的值等于它所指向的对象。
4. 指针可以改变指向,但引用不可改变其指向。
5. 引用更加安全。指针更灵活,引用更安全
1.引用比指针更安全,比如:如果调用一个某类型空悬指针(空悬指针:此指针的值不是空,但
是它指向的内容已经被delete了)的成员方法,可能导致系统崩溃;但是引用永远不能是空的
,就不存在这个问题.
2.指针比引用更灵活
1> 你可以让一个函数的最后一个参数的类型是指针,缺省值是NULL;在这个函数里面检查
此指针的值,如果是空则做1,如果不是空则做2(会用到这个指针).而如果用引用,则无法实
现.
2> 对指针可以有++, --这样的操作;而引用永远只能指向一个地方.而且只能在初始化的
时候指定,以后就不能重新指向别的对象了.