非 Null ポインターのチェック: if(pointer) と if(pointer != NULL)
質問:
従来の if(pointer != NULL) の代わりに if(pointer) を使用してポインタの非 null ステータスを検証することは許容されますか?
回答:
はい、これは許容されます。 null ポインターは暗黙的にブール値 false に変換され、null 以外のポインターは true に変換されるため、if(pointer) の使用は安全です。この動作は、C 11 標準のブール変換に関するセクションで定義されています。
「算術、スコープ外の列挙、ポインター、またはメンバー型へのポインターの prvalue は、bool 型の prvalue に変換できます。ゼロvalue、null ポインター値、または null メンバー ポインター値は false に変換され、その他の値は true に変換されます。std::nullptr_t 型の prvalue は bool 型の prvalue に変換されます。"
以上が「if(pointer != NULL)」の代わりに「if(pointer)」を使用して非 Null ポインタをチェックしても安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。