int equiv (char, char);
int nmatches(char *str, char comp) {
char c;
int n=0;
while ((c = *str) != 0) {
if (equiv(c,comp) != 0) n++;
str++;
}
return (n);
}
“(c=*str) != 0” 的实际含义是什么? 能否有人给我解释一下,或者帮助我找到正确的术语来自行搜索解释呢?
str
并将其所指向的值赋给c
,然后将c
与零进行比较。 - ForceBru*str
取自str
的地址;c = *str
将该值赋给c
;(c = *str) != 0
检查该值是否不为NULL
。在 C/C++ 中,NULL
是字符串结束标记,参见“null terminated string” https://en.wikipedia.org/wiki/Null-terminated_string。 - DimsNULL
用于表示空指针,而不是空终止符。混淆这些会导致困惑。另外,请勿在评论中回答。 - user694733