web-dev-qa-db-ja.com

c ++ boolの質問

c ++、boolでは、true == 1、false == 0 ??ありがとう

42
Don Lun

false == 0およびtrue = !false

つまり、ゼロではなく、ブール値に変換できるものはfalseではないため、must be trueです。

明確にするためのいくつかの例:

if(0)          // false
if(1)          // true
if(2)          // true
if(0 == false) // true
if(0 == true)  // false
if(1 == false) // false
if(1 == true)  // true
if(2 == false) // false
if(2 == true)  // false
cout << false  // 0
cout << true   // 1

true評価 to 1、ただしintではないfalse(つまり0評価からtrueになりますが、等しいからtrueにはなりません。これは、1に等しくないためです。

87
Andrew Marshall

はい、それは正しいです。 「ブール変数には、true(1)とfalse(0)の2つの値しかありません。」 ブール値に関するcppチュートリアル

2
It Grunt