У меня есть строковая переменная word = "APA" - PullRequest
0 голосов
/ 30 июня 2018

Когда я делаю расчет: 1-word.length(); Visual studio печатает 4294967294, вместо этого предполагается печать -2.

Когда я делаю расчет: 1+word.length(); Visual studio печатает 4, что и должно быть.

Почему, когда я вычитаю длину из 1, я получу это число и как я могу это исправить?

Примечание. Я использую C ++ и Visual Studio 2012.

1 Ответ

0 голосов
/ 30 июня 2018

Поскольку результат выражения 1 - word.length() имеет тип unsigned, потому что length() возвращает unsigned целое число . Итак, -2 оборачивается, и вы получаете 4294967294.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...