"СобеЗ C++" 🚀 Часть 2

⁉️Какой тип данных вы получите, сложив два bool(а)?

Как компилятор обрабатывает типы данных и какие преобразования происходят во время выполнения арифметических операций с логическими значениями?

Чему будут равны с и возвращаемое значение функции foo()?

Очевидно, их тип не bool, а int.

‼️ Почему?

Чтобы понять, что происходит, давай-те вставим код в CppInsights, который выполняет трансформацию кода. Это поможет вам увидеть ваш исходный код глазами компилятора.

Вы видите: int c = static_cast<int>(a) + static_cast<int>(b);

И что-то очень похожее для функции foo. Таким образом, оба значения типа bool, a и b приводятся к целым числам перед сложением.

Хоть и логические значения (bool) в C++ могут быть либо true (1), либо false (0), при арифметических операциях они приводятся к целым числам (int).

Переменная c и возвращаемое значение функции foo() имеют тип int и значение 2

#интервью #программирование #программист #код #задача #собес #собеседование #решение
"СобеЗ C" 🚀  Часть 2 | Сетка — новая социальная сеть от hh.ru
repost

624

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь