Давайте разберем это:
for (i;
Создает цикл for с переменной цикла i
.Это не обязательно, но больше в стиле кодирования.
s[i] >= '0' && s[i] <= '9'
Это проверяет, чтобы убедиться, что символ с этим индексом находится внутри диапазона для десятичного знака (0 - 9), и если этонет, он выходит из цикла, затем возвращает число.
i++
После запуска цикла это увеличивает индекс, который вы проверяете в строке, на единицу.
n = 10 * n
Это добавляетдополнительная цифра в n, умноженная на 10, потому что вы знаете, что если у вас есть еще один символ в вашем числе, он должен быть умножен на десять (скажем, я начинаю синтаксический анализ 100, я читаю первые две строки и имею 10,есть еще один символ, поэтому я умножаю на десять, чтобы получить 100.
+ (s[i]-'0');
Это добавляет следующую цифру к 'n', результат, который определяется путем вычитания символа из текущего индекса на '0 ', который в диапазоне от 0 до 9 возвращает целое число для этого числа (если это вас смущает, взгляните на ASCII Chart .
Надеюсь, это помогло вампонять.