NULL, NUL, EOF, '\0',0区别

时间:2023-03-09 00:12:17
NULL, NUL, EOF, '\0',0区别

NULL: 定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指;
'\0': 用且只用字符串结束符;
NUL : 0x00,0值字符,可以用于结束ASCII字符串,和'\0'类似,但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL '\0';
EOF :通常定义为-1, 文件结束符标志,一般是ctrl+z.

1.0 can be used anywhere, it is the generic symbol for each type's zero value and the compiler will sort things out.

2.'\0' should be used only in a character context.

3.NULL is to be used for pointers only since it may be defined as ((void *)0), this would cause problems with anything but pointers.

4.nul is not defined in C or C++, it shouldn't be used unless you define it yourself in a suitable manner, like:#define nul '\0'