Что выведет код Junior Типы и неопределённое поведение обновлено

Что выведет: арифметика с char и bool

Вопрос

Что выведет программа (C++20, g++ 14)? Каждый вывод с новой строки, как в консоли.

#include <iostream>

int main() {
    char c = 'a';
    std::cout << c + 1 << '\n';
    std::cout << char(c + 1) << '\n';
    std::cout << true + true << '\n';
    unsigned char a = 200, b = 100;
    unsigned char s = a + b;
    std::cout << a + b << ' ' << int(s) << '\n';
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 98, b, 2, 300 44. c + 1 продвигается до int и печатается число 98 (код 'b'). char(c + 1) выводится символом b. true + true тоже int: 2. a + b считается в int и равно 300, а при сохранении в unsigned char берётся по модулю 256: 44.

Что выведет

98
b
2
300 44

Разбор

c + 1 продвигается до int и печатается число 98 (код 'b'). char(c + 1) выводится символом b. true + true тоже int: 2. a + b считается в int и равно 300, а при сохранении в unsigned char берётся по модулю 256: 44.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.