只读Kenneth Reek的C书上的指针。它表示NUL字节是其位为全0的字节,写为'\0'
,NULL的值为0,表示值为零的指针。
两者都是整数并且具有相同的值,因此它们可以互换使用。
并且此代码也是:
char const *keyword[] = { "do", "for", "if", "register",
"return", "switch", "while", NULL };
在此代码中,NULL允许搜索表的函数检测表的结尾。那么,我们可以互换NULL和NUL宏吗?
答案 0 :(得分:15)
答案 1 :(得分:12)
没有标准化的NUL
宏,至少在C中没有。
此外,NULL
优于普通0
字面值,它向读者发出信号“嘿,我们正在处理指针”,这可能被认为是一种优势。
在C ++中,成语很长一段时间只是写0
,但是他们似乎已经颠倒了它并且由于某种原因引入了新的文字nullptr
。
在C中,我建议为指针编写NULL
,为字符编写'\0'
。