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(ゼロ) と評価されるものはすべて「偽」であり、ゼロ以外のものはすべて「真」です。
したがって、ptrisの場合NULL、これら 2 つのif条件は最終的に同じように機能します。
if (ptr != NULL)= if (0 != 0)=if (0)
と:
if (ptr)=if (0)
人々はどちらが優れているかを議論しますが、コードでは両方を見ることができます。前者の方がより明確であるため、より明確です。2番目は短いです。どちらも技術的に正しく、同等です。
どちらも正しく、同等です。
ポインターのみが評価されるfalse場合は、ポインターがそうである場合NULLとtrueそうでない場合に評価されます。