我不明白for循环怎么会有bits++(我们怎么能递增一个char指针?),这段代码怎么会产生一个int?
int16_t binary_to_int(char *bits) {
int16_t result;
for (result = 0; *bits; bits++) {
if (*bits == '1')
result = (result << 1) | 1;
else if (*bits == '0' )
result <<= 1;
else
break;
}
return result;
}
bits
是一个 char*
指向一个字符串。事实上,它指向的是该字符串的第1个字符,而不是 bits++
移动指针到字符串的下一个字符。*bits
推迟指针返回当前的字符。char
指向,所以它可以用于检查是否已经到达字符串的0-terminator。