c语言中NULL和EOF有什么区别
发布网友
发布时间:2022-03-31 14:21
我来回答
共3个回答
热心网友
时间:2022-03-31 15:51
C语言中的NULL代表空指针,其定义为
#define NULL (void *)0
EOF是End Of File的简写,即文件结尾。其定义为
#define EOF -1
二者区别:
1 值不同,NULL是0, EOF是-1。
2 类型不同,NULL是指针,而EOF只是普通的整型常量。
3 应用范围不同。
NULL一般用作指针操作,包括指针类型赋初始值,返回指针类型的函数在出错时的返回值等。
EOF一般用于输入函数,比如scanf, 或者各种读文件操作函数等。当返回EOF时代表读函数出错,达到了文件尾。
热心网友
时间:2022-03-31 17:09
End Of File,在电脑的术语缩写通常为 EOF,在作业系统决定资料源无更多的资料可读取。资料源通常称为档案或串流。
在 C语言,或更精确地说成 C标准函式库,档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF 会在编译原始码前展开实际值给预处理器。
对于NULL是表示空的意思。
热心网友
时间:2022-03-31 18:43
这问题其实可以通过查看头文件的宏定义来了解
NULL
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
#define offsetof(s,m) (size_t)&(((s *)0)->m)
EOF
#define EOF (-1)