C ++がCの上にボルトで固定された初期の頃は、NULLはとして定義されていたため、使用できませんでした(void*)0。NULLを以外のポインタに割り当てることはできませんvoid*。当時、0nullポインタに(ゼロ)を使用することが受け入れられていました。
今日まで、私はゼロをnullポインターとして使用し続けましたが、私の周りの人たちはを使用することを強く求めていますNULL。個人的にはNULL、既存の値に名前()を付けることには何のメリットもないと思います。また、ポインタを真理値としてテストすることも好きなので、
if (p && !q)
do_something();
次に、ゼロを使用する方が理にかなっています(を使用する場合と同様に、NULL論理的に使用することはできません。ゼロであると想定しない限り、p && !q明示的に比較する必要がありNULLます。NULLNULL
NULLよりもゼロ(またはその逆)を優先する客観的な理由はありますか、それともすべて個人的な好みですか?
編集:RAIIと例外を使用して、ゼロ/ NULLポインターを使用することはめったにありません(ただし、元々言うことを意味します)必要がありますが、まだ必要な場合があります。