指针和引用都是用来间接访问对象的,他们之间有什么区别呢?何时用指针?何时用引用?为什么?
1. 首先认识到指针可以初始化为NULL而引用则不可以。 一个引用变量必须引用到某个对象上, 而且一旦初始化一个引用后,这个引用只能访问这个对象,而不能重新给该引用赋值到其他对象,即关系一旦建立,就不能解除。 因此当你需要一个变量可以间接访问其他对象时, 你需要使用指针。
因为一个引用必须关联到某个对象, 因为在定义引用时必须初始化:
string &rs; // 错误: 引用变量必须初始化
string s(“xyzzy”);
string &rs = s; // okay, rs引用s
指针没有这个限制:
string *ps; // 未初始化的指向string的指针
2. 指针可以重新指向其他的对象, 引用只能指向他初始化的对象,可以说引用像一个指针常量。
