我有以下函数,它是Trie结构实现的一部分:
int alpha_char_strlen (const AlphaChar *str) {
const AlphaChar *p;
for (p = str; *p; p++) ;
return p - str;
}
任何人都可以帮助我并解释for循环的条件如何保持,以及这种情况下的条件是什么?
注意:AlphaChar只是一个带有unsigned int类型的typedef,该函数计算AlphaChar字符。
答案 0 :(得分:8)
条件*p
与*p != 0
相同(如果*p
是基本类型)。也就是说,你继续递增指针p
,直到它指向零。换句话说,您将str
视为指向零终止数组的指针。
答案 1 :(得分:0)
条件为*p
,这是*p!=0
的缩写。
因此它只是扫描AlphaChar数组的出现次数为0.