>>703の続き

上記は関数はリストに単語をアルファベット順に追加していく関数です。
以下の箇所の動作がいまいちよく分かりません。

 for (prev = cur = head; (cur = cur->next) != NULL; prev = cur) {
   if (strcmp(name, cur->name) < 0) {
     p->next = cur;
     break;
   }
 }

どなたかご教示ください。
よろしくお願いします。