Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私の知る限り、NULL は実際には 0 ではありません。ポインタを 0 と NULL と比較することに違いはありますか? さらに、正しい使用法は何ですか。ありがとう!
C では、マクロ NULL は実装定義のヌル ポインター定数として定義されます。C99 では、暗黙的または明示的に型 に変換された整数値 0 として移植可能に表現できますvoid*。C++ では、NULL はゼロ (または) の整数リテラルであり、null ポインター定数を表すために伝統的に好まれてきました。00L
void*
0
0L
ポインターとの比較の場合、コンパイラーは暗黙的に変換0します。NULL
NULL
と比較0しても常に安全NULLです。