в С++, bool, это true == 1, false == 0?? спасибо
С++ bool question
Ответ 1
false == 0
и true = !false
то есть. все, что не равно нулю и может быть преобразовано в boolean, не является false
, поэтому оно должно быть 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
оценивается как 1
, но любой int
, который не является false
(т.е. 0
), принимает значение true
, но не равен true
, так как он не равен 1
.
Ответ 2
Да, это правильно. "Логические переменные имеют только два возможных значения: true (1) и false (0)". учебник cpp по логическим значениям