誰かがこのループがどのように機能するかを説明できますか?関数全体は、特定の文字列を配置するハッシュの場所を特定するのに役立ち、コードは次のとおりです。
//determine string location in hash
int hash(char* str)
{
int size = 100;
int sum;
for(; *str; str++)
sum += *str;
return sum % size;
}
nullに達するまで文字列を文字ごとに繰り返すように見えますが、単純な* strが条件として機能するのはなぜですか?str ++が次の文字に移動するのはなぜですか?代わりに次のようにすべきではありません:*(str + i)ここで、iはループごとに増分し、*strアドレスに基づいてメモリ内の「i」の場所を移動します。