なぜだか最近 C++ ネタが多いな。研究では Java か Python か Shell Script がほとんどなんだけど。 ここでは、NULLは((void*)0)であって、0ではないのだから、場合によっては動作が違うよ……ということが書かれています。 でも面白いことに、C++ではNULLと0は完全に同じです。 #define NULL 0とされています。 そもそも、もしもNULLの型がvoid*だったのなら、C++では、char*に対してそのままの代入が行えません。 なのでC++では、NULLと0は完全に同じものです。(UNIXだと、違うとでも言うのでしょうか?) ええと、C++ では NULL と 0 が同一なんて規定があったっけ? NULL マクロを使うのをやめてリテラルの 0 を使えという話はありがちだけど、とりあえず GCC-4.0 では NULL と 0 が同一なわけではな