指针与引用的区别
- 指针可以是空指针,但是引用不能是空引用。这就导致下面一个区别。
- 指针可能是非法的,引用总是合法的。如果指针是空指针,那么就不能合法的使用它。这要求在每次使用指针时都需要判断它的合法性。相反引用则不用判断。
- 指针是可以修改的,引用不可以。指针是变量,他存储的地址所指向的对象可以被修改为其他地址,不再指向原对象。但是引用在初始化时被限定指向对象,可以修改对象的内容,但是不允许引用再引用其他对象。
- 基于上述情况,指针和引用的应用场合不一样。指针可以应用在指向对象存在不同时刻指向不同对象或者需要指向不存在任何对象的场合。如果总是指向一个对象且指向该对象之后不再改变,则应该使用引用。