笔试面试题9--指针和引用的区别

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

你可能感兴趣的:(C++,Written,exam,and,interview)