C でプログラムをコーディングしているときに、わからない問題が発生しました。ifステートメントで条件が満たされているかどうかを確認していましたが、次の点に違いがあるかどうか疑問に思っていました:
if(ptr != NULL)
or
if(ptr)
どちらも正しいと思いますが、C の世界では 2 番目が多く、Java の世界では 1 番目が多く使用されます。どちらが正しいですか?
C でプログラムをコーディングしているときに、わからない問題が発生しました。ifステートメントで条件が満たされているかどうかを確認していましたが、次の点に違いがあるかどうか疑問に思っていました:
if(ptr != NULL)
or
if(ptr)
どちらも正しいと思いますが、C の世界では 2 番目が多く、Java の世界では 1 番目が多く使用されます。どちらが正しいですか?
C では、0
(ゼロ) と評価されるものはすべて「偽」であり、ゼロ以外のものはすべて「真」です。
したがって、ptr
isの場合NULL
、これら 2 つのif
条件は最終的に同じように機能します。
if (ptr != NULL)
= if (0 != 0)
=if (0)
と:
if (ptr)
=if (0)
人々はどちらが優れているかを議論しますが、コードでは両方を見ることができます。前者の方がより明確であるため、より明確です。2番目は短いです。どちらも技術的に正しく、同等です。
どちらも正しく、同等です。
ポインターのみが評価されるfalse
場合は、ポインターがそうである場合NULL
とtrue
そうでない場合に評価されます。