1.pointer可以为空,但是reference 不能为空。说明一下几个问题:
- 如果你的变量可能为空,那么你应该将其设计为pointer而不是refrence。反之,如果你的变量不能取空值,那么你应该将其设计为reference。
- reference既然不能为空,也就必须在定义的时候,它就必须被给予一个合理的值。而指针可以为空。
以下行为要避免:
- 在reference和pointer都可以使用情况下,使用reference更安全。因为reference不能为空,所以在使用之前不需要判断其值是否为空。
2.pointer所指的对象可以改变,但是reference所指的对象始终不变(通过reference修改的值,最终都会修改reference所引用的那个对象的值)。
如果你所设计的变量在不同时刻需要指向不同的对象,那么需要将其设计为pointer。反之,可以设计为reference因为使用更安全。