有人可以解释这个循环是如何工作的吗?整个函数用于找出在哈希中放置某些字符串的位置,代码如下:
//determine string location in hash
int hash(char* str)
{
int size = 100;
int sum;
for(; *str; str++)
sum += *str;
return sum % size;
}
它似乎逐个字符地迭代字符串,直到它达到空值,但是为什么简单的 *str 可以作为条件工作?为什么 str++ 会移动到下一个字符,它不应该是这样的:*(str+i) 其中 i 随每个循环递增并根据 *str 地址移动内存中的“i”位置?