1. ホーム
  2. c++

[解決済み] if (pointer != NULL)の代わりにif (pointer) を使用できますか?

2022-04-14 10:40:04

質問

でないことをポインタで確認しても大丈夫でしょうか? NULL と書くことで、単純に if(pointer) を使用しなければならないのでしょうか? if(pointer != NULL) ?

解決方法は?

NULLポインタは暗黙のうちにfalseに変換され、非NULLポインタはtrueに変換されるからです。C++11標準の、以下のセクションを参照してください。 ブール値の変換。

<ブロッククオート

算術値、スコープされていない列挙値、ポインタ、またはメンバ型へのポインタのprvalueは 型の値 bool . ゼロ値、ヌルポインタ値、ヌルメンバポインタ値は、以下のように変換されます。 false ; それ以外の値は true . 型の値は std::nullptr_t のprvalueに変換することができます。 タイプ bool であり、結果の値は false .