c语言不解 请问gets()读到文件结尾到底是返回EOF还是空指针

如题
请问gets()读到文件结尾到底是返回EOF还是空指针还是说EOF和空指针是一回事?

gets是读入字符数组一行(也就是到换行符为止

gets(str) 在读取成功的时候返回str,str保存的是成功读入的内容。在失败的时候返回NULL,str的内容保持不变。所以不能和EOF进行判断。