連レスすみませんが、初心者の人が混乱しそうな所を解説します。
間違っていたらすみません。

void main() 危険で規格違反だったはず、標準は確かint main()だったような。
NULL 特別な数値です。ファイルを開こうとして失敗した時などに返されます。
\0 文字列の最後を表すヌル文字。
EOF End Of Fileの略、ファイルの終わりにはEOFが返されます。多分EOFも何か特別な値なんでしょう。