6.10 这有点奇怪。NULL 可以确保是 0, 但空 (null) 指针却不一定?

随便使用术语 ``null" 或 ``NULL" 时, 可能意味着以下一种或几种含义:
  1. 概念上的空指针, 问题 5.1 定义的抽象语言概念。它使用以下的 东西实现的 ……
  2. 空指针的内部 (或运行期) 表达形式, 这可能并不是全零, 而且对不用的指针 类型可能不一样。真正的值只有编译器开发者才关心。C 程序的作者永远看不到 它们, 因为他们使用 ……
  3. 空指针常数, 这是一个常整数 0 (参见问题 5.2)。它通常隐藏在  ……
  4. NULL 宏, 它被定义为 0 (参见问题 5.4)。最后转移我们注意力到  ……
  5. ASCII 空字符 (NUL), 它的确是全零, 但它和空指针除了在名称上以外, 没有任何必然关系; 而……
  6. ``空串" (null string), 它是内容为空的字符串 ("")。在 C 中 使用空串这个术语可能令人困惑, 因为空串包括空字符 ('\0'),但 包括空指针, 这让我们绕了一个完整的圈子 ……

本文用短语 ``空指针" (``null pointer", 小写) 表示第一种含义, 标识 ``0"  或短语 ``空指针常数" 表示含义 3, 用大写 NULL 表示含义 4。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)