ポインタ値のチェック: if (pointer) vs if (pointer != NULL)
C でポインタを扱う場合、これは重要ですそれらの有効性を判断します。 if (ポインター) という式を使用して、ポインターが NULL 以外であるかどうかをテストすることはできますか?それとも、if (pointer != NULL) を明示的に記述する必要がありますか?
答え:
C 標準では、if (pointer) を使用してポインターをテストできます。有効。 null 以外のポインターは暗黙的に true に変換され、null ポインターは false に変換されます。この動作は、C 11 標準のブール変換に関するセクションで定義されています。
<code class="cpp">A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member type can be converted to a prvalue of type bool. A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true. A prvalue of type std::nullptr_t can be converted to a prvalue of type bool; the resulting value is false.</code>
したがって、ポインタが NULL 以外であるかどうかを確認するために if (pointer) を安全に書くことができます。ただし、明確さと一貫性のために、必要に応じて明示的な if (pointer != NULL) または if (pointer) 構造を使用することをお勧めします。
以上がC でポインタの有効性をチェックするには「if (pointer)」だけで十分ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。