Страницы

Поиск по вопросам

суббота, 23 марта 2019 г.

Непонятная конструкция в Си

Недавно добрался до книжки по Си Б.Кернигана и Д.Ритчи. Не могу понять, что значит: s[i] - '0' При условии что: s - массив char i - переменная-счётчик в циле В тексте объяснения не нашёл.


Ответ

Дело в том, что в Си тип char является числовым к нему можно также прибавлять и отнимать числа. s[i] - '0' в указанном куске кода автор использует трюк для перевода символа-цифры в число. Т.к. в кодировке символов цифры идут подряд начиная с 0, то если в s[i] содержится цифра, тогда результатом вычитания будет та же цифра, только уже в численном виде, а не в символьном. Код символа 0 это 48, код символа 7 будет 55. Соответственно 55 - 48 будет 7

Комментариев нет:

Отправить комментарий