#c
Недавно добрался до книжки по Си Б.Кернигана и Д.Ритчи. Не могу понять, что значит: s[i] - '0' При условии что: s - массив char i - переменная-счётчик в циле В тексте объяснения не нашёл.
Ответы
Ответ 1
Дело в том, что в Си тип char является числовым к нему можно также прибавлять и отнимать числа. s[i] - '0' в указанном куске кода автор использует трюк для перевода символа-цифры в число. Т.к. в кодировке символов цифры идут подряд начиная с 0, то если в s[i] содержится цифра, тогда результатом вычитания будет та же цифра, только уже в численном виде, а не в символьном. Код символа 0 это 48, код символа 7 будет 55. Соответственно 55 - 48 будет 7.Ответ 2
В тексте объяснения не нашёл. Честно-честно? :) Как мы уже говорили в главе 1, выражение s[i] - '0' дает числовое значение символа, хранящегося в s[i], так как значения '0' , '1' и пр. образуют непрерывную возрастающую последовательность.
Комментариев нет:
Отправить комментарий