本文讨论NULL和NUL的区别。

根据1的解释:NULL定义为

#define NULL (void *)0

所以NULL其实是把0强制转换成一个指针类型,成为一个指针,可以让编译器做type check。

在32位下:

\x00\x00\x00\x00 // 4个bytes

64位下:

\x00\x00\x00\x00 \x00\x00\x00\x00 // 8个bytes

NUL也就是\0,只是用作char *s中的terminator,只有1个byte:\x00