指针和引用的区别
1、非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须是指向某些对象。因此如果你使用一个变量并让他指向一个对象,但是该变量也可能不指向任何对象,因此这时你应该把该变量声明为指针,因为这时你可以赋空置给该变量。假如变量肯定指向一个对象,并且你的设计不允许变量为空值,这时你就可以把变量设置为引用了。不存在指向空值的引用这个事实使用引用的代码效率比使用指针的效率更高。
2、合法性区别。在使用引用之前不需要测试他的合法性,但是在使用指针之前必须要测试他的合法性,防止其为空值。
3、可修改区别。指针和引用的另一个重要的区别是指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指向的对象,以后不能改变,但是指向的对象其内容可以改变。
4、应用区别。总的来说,在以下情况下应该使用指针:一是考虑到存在不指向任何对象的可能(这种情况下可以设指针为空值),二是需要在不同的时刻指向指向不同的对象(这种情况下可以改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么因该使用引用。