當前位置:文思屋>學習教育>考研>

如果NULL和0作為空指標常數是等價的,如何選擇

文思屋 人氣:1.07W

許多程式設計師認為在所有的指標上下文中都應該使用NULL, 以表明該值應該被看作指標。

如果NULL和0作為空指標常數是等價的,如何選擇

另一些人則認為用一個巨集來定義0, 只不過把事情搞得更復雜, 反而令人困惑。因而傾向於使用未加修飾的0。沒有正確的答案。

C 程式設計師應該明白, 在指標上下文中NULL 和0 是完全等價的, 而未加修飾的0 也完全可以接受。任何使用NULL (跟0 相對) 的地方都應該看作一種溫和的提示, 是在使用指標; 程式設計師(和編譯器都) 不能依靠它來區別指標0 和整數0。

在需要其它型別的0 的時候, 即便它可能工作也不能使用NULL, 因為這樣做

發出了錯誤的格式資訊。(而且, ANSI 允許把NULL 定義為((void *)0), 這在非指標的上下文中完全無效。特別是, 不能在需要ASCII 空字元(NUL) 的地方用NULL。如果有必要, 提供你自己的定義

#define NUL ’