C/C++

Что такое bool в C++

Пожалуйста, объясните такими словами, чтобы очень легко было понять. В с++ я 0, просто хочу понять
Ник К
Ник К
17
логический тип данных, который принимает два значения 0 - ложь, 1 - истина. Занимает 1 байт. Если присвоить переменной этого типа отличное от нуля значение то оно автоматически заменится на 1
Артём Азаров
Артём Азаров
1 106
Лучший ответ
Ник К Где мы модем связаться?
Это логический тип, и он есть не только в C++
Саян Хамзин
Саян Хамзин
84 490
Ник К Можно поподробнее?
Ник К Всмысле логический? Что за тип? В каком смысле тип?
bool - это тип данных, переменные которого принимают два значения- true и false и реализованный однобайтными (восьмибитовыми) переменными. А так как в С++ есть достаточно строгая проверка типов, но не существует строгой типизации, то переменные этого типа можно заменять переменными целого типа, которые всё равно приводятся к однобайтному числовому виду со значениями 0 и 1 в случаях false и true соответственно. В языке Pascal такая конвертация невозможна, а в С++ вполне допустимо в случае необходимости писать следующее:
bool a; int b = 25; a = b%2;
cout << ((a) ? "odd" : "even") << endl;
Или можно сделать такую логическую функцию проверки числа на чётность:
bool even_or_odd(long x) { return x & 1; }
На примере этой функции отчётливо проявляется отсутствие в С++ строгой типизации.
Хранить большие логические данные в массивах типа bool -не очень хорошая идея, потому что при этом тратится в восемь раз больше памяти по сравнению с логическими данными, упакованными в битовые структуры.
Олег Данильев
Олег Данильев
66 572
Олег Данильев Вообще-то return x&1; возвращает true в случае нечётности х.
Максим Клюзов Вместо массива bool можно использовать bitset, это гораздо лучше. Это булевский вектор, в котором булевские значения обычно записываются побитно. Да и есть в нем готовые встроенные методы работы с таким булевским массивом.
Бул - обычная однобитная переменная. В силу своей однобитности может принимать только два значения - 0 и 1. По умолчанию она так и отображается через функции вывода, в математических формулах и т. д. как число.
специальный тип bool. Допустимыми значениями этого типа являются только true и false, при этом других значений у переменной данного типа быть не может.