C ++ пример недостаточного заполнения?

В настоящее время я беру вводный класс C ++, и профессор привел нам следующий пример:

unsigned int TEST = -1;
cout << TEST;

Теперь, на его машине, TEST возвращается как максимальное значение для целого числа, потому что он принудительно опустился. Но на моей машине он возвращается как 0.

Это компилятор поведения зависит или что-нибудь? Другими словами, почему моя машина вернула 0, а его машина вернула максимум?

0

Решение

Зависит ли это поведение от компилятора

Нет. Это зависит от платформы в том смысле, что максимальное значение unsigned int может варьироваться между платформами. Но все стандартные совместимые компиляторы будут показывать наибольшее значение, представляемое unsigned int — который никогда не равен 0.

почему моя машина вернула 0, а его машина вернула максимум?

Возможны два варианта: это не программа, которая выдает выходные данные на вашем компьютере, или компилятор на вашем компьютере.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]