Term 1: Distinguish between pointers and references

引用(references)和指针(pointers)的区别:

  1. references 必须初始化就引用一个对象,所以不允许这个变量为 null;而指针可以
    1. char *pc = 0; // set pointer to null
    2. char &rc = *pc; // DO NOT do that!

    上面这种引用形式,结果不可预期(C++ 对此没有定义)

  1. references 不能被重新赋值(从一而终),pointers 可以
  2. 使用某些运算符,比如 operator [] 时需要使用 references

综上,以下情况使用 references

  1. 需要指向某个东西,而且不会改变指向其他东西
  2. 实现一个操作符,pointer 无法满足需求

其他任何时候,使用 pointers!

Term 2: