任意のスカラー値を型 _Bool に変換すると、その結果の
スカラー値が 0 に等しい場合は 0 になります。スカラー値が 0 以外の場合は 1 になります。
整数、浮動小数点、算術、列挙、ポインター、およびメンバー右辺値型を指すポインターを、
型 bool の右辺値に変換できます。
ゼロ、ヌル・ポインター、またはヌル・メンバー・ポインター値は、false に変換されます。
他のすべての値は、true に変換されます。
次にブール変換ステートメントを示します。
void f(int* a, int b) { bool d = a; // false if a == NULL bool e = b; // false if b == 0 }
a がヌル・ポインターに等しい場合、変数 d は false になります。 そうでない場合には、d は true になります。 b がゼロに等しい場合、変数 e は false になります。 そうでない場合には、e は true になります。
関連参照