18/03/07 11:32:07.41 TWOfgg7C0.net
>>463
0 はポインタに型変換可能で、型変換した結果が空ポインタと等しいことが保証されてる特別な存在。
(ビットパターンが等しいとは限らないことには注意が必要。)
互換であることが保証されているので、処理系によっては
#define NULL 0
として定義していることもある。
余談だが、これはオーバーロードされた関数でうっかりしやすいので気を付けた方がいい。
たとえば関数 foo が以下のような型でオーバーロードされている場合、
void foo(int);
void foo(int*);
これを
foo(NULL)
と呼び出すと void foo(int) が呼び出されたりする。
今ではヌルポインタを表すキーワード nullptr が用意されたので、
NULL はあまり使わない方が良い。