Term 1: Distinguish between pointers and references
引用(references)和指针(pointers)的区别:
- references 必须初始化就引用一个对象,所以不允许这个变量为 null;而指针可以
char *pc = 0; // set pointer to null
char &rc = *pc; // DO NOT do that!
上面这种引用形式,结果不可预期(C++ 对此没有定义)
- references 不能被重新赋值(从一而终),pointers 可以
- 使用某些运算符,比如
operator []
时需要使用 references
综上,以下情况使用 references:
- 需要指向某个东西,而且不会改变指向其他东西
- 实现一个操作符,pointer 无法满足需求
其他任何时候,使用 pointers!