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