C语言 NUL、NULL及eof

nul 和 null要看编译器,不同的编译器有所区别。
一般而言 null(NULL)是宏定义 #define NULL ((void *)0),是一个指向地址0的指针,也就是说它是一个值为0的指针类型的数,这个宏是在头文件stddef.h文件里面定义的,你可以用#include <stddef.h>或者#include <stdlib.h>来使用它;
nul(NUL)一般而言是指ASC码'\0'字符,十六进制值为0x00,这个在C语言的头文件里面没有被定义,你可以自己定义它 #define NUL '\0',一个字符串的最后一个字符就是’\0'(隐含的);
举例:
#include <stdio.h>
#include <stdlib.h>
#define NUL '\0'
int *ptr = NULL;
char ch = NUL;

eof是文件结束符,值为-1,你可以从头文件stdio.h里面找到它的定义 #define EOF (-1),表示文件结束或者流结束;

\r和\n都是一个字符,分别表示回车和换行,在ASC码里值分别为0x0D、0x0A,windows中文本一行的结尾都是有两个字符\r\n,但是在unix、linux里面只有一个字符\n,Mac里面则是只有字符\r,但是你是用printf("\r");或printf("\n");大部分程序(某些控制台程序除外)都是没有太大区别的。
原文地址:https://www.cnblogs.com/mish/p/3032802.html