void strcpy(char *s, char *t)
{
    while(*s++ = *t++)
        ;
}

このプログラムってナル文字がコピーされて式が評価されたときに偽になるのですか?
ナル文字の値は0ですからね。
ということはそれぞれのポインタはこのループが終わった後ナル文字の次を指しているということですか?