2

私の知る限り、NULL は実際には 0 ではありません。ポインタを 0 と NULL と比較することに違いはありますか? さらに、正しい使用法は何ですか。ありがとう!

4

3 に答える 3

4

C では、マクロ NULL は実装定義のヌル ポインター定数として定義されます。C99 では、暗黙的または明示的に型 に変換された整数値 0 として移植可能に表現できますvoid*。C++ では、NULL はゼロ (または)
の整数リテラルであり、null ポインター定数を表すために伝統的に好まれてきました。00L

ポインターとの比較の場合、コンパイラーは暗黙的に変換0します。NULL

と比較0しても常に安全NULLです。

于 2013-07-08T12:55:59.413 に答える