それは wihile文ではなく 代入が 演算子である事を利用してるわけだ
ただ、C言語ならお作法としては、

 while (*s1++ = *s2++);

を推奨する人が多いように思う。
意味は、ポインタを変更しつつ代入し、その代入データが 0 になればループ終了という