教えて欲しいことがあります。
以下の課題及びその答えのプログラムと説明に出会いました。


★ 「Ctrl+Z」入力されるまで、文字列入出力を行う
(書き方)
#include <stdio.h>…必要

int main(void)
{
char str[256];

EOFではないので注意が必要
  ↓
while (gets(str) != NULL) {…「Ctrl+Z が入力されるまで」
puts(str);という意味
}

return 0;
}


どうしてEOFではなくNULLなのかが分かりません。
どうか教えてください。よろしくお願いします。