В настоящее время я беру вводный класс C ++, и профессор привел нам следующий пример:
unsigned int TEST = -1;
cout << TEST;
Теперь, на его машине, TEST возвращается как максимальное значение для целого числа, потому что он принудительно опустился. Но на моей машине он возвращается как 0.
Это компилятор поведения зависит или что-нибудь? Другими словами, почему моя машина вернула 0, а его машина вернула максимум?
Зависит ли это поведение от компилятора
Нет. Это зависит от платформы в том смысле, что максимальное значение unsigned int
может варьироваться между платформами. Но все стандартные совместимые компиляторы будут показывать наибольшее значение, представляемое unsigned int
— который никогда не равен 0.
почему моя машина вернула 0, а его машина вернула максимум?
Возможны два варианта: это не программа, которая выдает выходные данные на вашем компьютере, или компилятор на вашем компьютере.
Других решений пока нет …