Логический тип в C++

В языке С++ для логических значений существует специальный тип -- bool.

Допустимыми значениями этого типа являются только true и false, при этом других значений у переменной данного типа быть не может.

Переменная типа bool занимает в памяти ровно 1 байт.

bool b;
cout << sizeof(b); //выведет 1

Допустимые операции

С логическими переменными можно осуществлять логические операции:

~x -- логическое отрицание (НЕ)

x & y -- логическое умножение (И)

x | y -- логические сложение (ИЛИ)

Для типа bool стираются различия между операторами && и &, а также между || и |.

Совместимость с типом int

Тип bool совместим с типом int по присваиванию в обе стороны.

При этом true переходит в 1, false -- в 0.

При обратном приведении любое число, не равное нулю -- переходит в true, 0 -- в false.

Если использовать bool в арифметическом выражении, то оно будет переведено в int: bool + bool = int.

Надо понимать, что в С++ логический и целочисленный тип -- это разные типы, поэтому по типу аргумента int и bool возможна перегрузка функций.