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