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)