преобразование Bool в int: гарантированно будет 0 или 1? Однако за кулисами эти значения часто хранятся как целые числа. Это поднимает вопрос: когда Bool преобразуется в INT, результат гарантированно является либо 0, либо 1? Согласно стандарту C (§4.5/4), «Rvalue of Type Bool может быть преобразована в Rvalue of Type int, причем ложь становится ноль и истинными». Это означает, что когда Bool преобразуется в int in c, результат всегда будет 0 или 1.
c
В C ситуация немного другая, но одинаково ясна. В соответствии со стандартом C (§6.3.1.2/1), «когда какое -либо скалярное значение преобразуется в _bool, результат равен 0, если значение сравнивает равное 0; в противном случае результат - 1.» Это подразумевает, что когда Bool (представлен как _bool в C), преобразуется в int, результат снова будет 0 или 1.
Практический пример
, чтобы проиллюстрировать это поведение в коде:
int a = 2; bool b = a; int c = 3 b; // 4в этом примере переменная Bool B инициализируется к значению int a (что 2), но, поскольку значения BOOL хранятся как 0 или 1, B становится 1. Последующее добавление 3 приводит к присвоению c значение 4. Это подтверждает, что BOOL преобразуется в int как 1, гарантируя результат 0 или 1.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3