什么是字符串 - '0'(字符串是一个字符)

Nab*_*ter 2 c string char

这是做什么的

while(*string) {
    i = (i << 3) + (i<<1) + (*string -'0');
    string++;
}
Run Code Online (Sandbox Code Playgroud)

*string -'0'

它会删除字符值或什么?

Ale*_*nze 7

这会从string指向字符ASCII码的字符中减去'0'.所以,'0'- '0'给你0等等'9'- '0'给你9.

整个循环基本上是"手动"计算字符串中的十进制整数的数值string.

这是因为,i << 3就相当于i * 8i << 1相当于i * 2(i << 3) + (i<<1)相当于i * 8 + i * 2i * 10.