ホームページ > バックエンド開発 > C++ > ブール値を整数に変換すると、結果は常に 0 または 1 になりますか?

ブール値を整数に変換すると、結果は常に 0 または 1 になりますか?

Linda Hamilton
リリース: 2024-12-01 03:39:19
オリジナル
432 人が閲覧しました

Does Converting a Boolean to an Integer Always Result in 0 or 1?

ブール値を整数に変換すると、常に 0 または 1 になることができますか?

ブール値を整数に変換するとき、多くのコンパイラは、 0 または 1 のみを保持するため、この動作の信頼性について疑問が生じます。例を見てみましょう:

int a = 2;
bool b = a;
int c = 3 + b; // What is the result? 4 or 5?
ログイン後にコピー

答え: はい、bool は整数に変換されると 0 または 1 であることが保証されます。

C の場合:

C 標準 (§4.5/4) では、次のように明示的に規定されています。 「bool 型の右辺値は、false が 0 になり、true が 1 になることで、int 型の右辺値に変換できます。」

C:

値が_Bool に変換されると、0 または 1 になります (§6.3.1.2/1): "スカラー値が _Bool に変換されると、結果は次のようになります。値が 0 と等しい場合は 0、それ以外の場合、結果は 1 です。

int に変換する場合、int は 0 と 1 を保持できるため、値は変わりません (§6.3. 1.3).

以上がブール値を整数に変換すると、結果は常に 0 または 1 になりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート