N中的NUL和NULL是否可以互换?

时间:2013-03-18 14:32:24

标签: c++ c

只读Kenneth Reek的C书上的指针。它表示NUL字节是其位为全0的字节,写为'\0',NULL的值为0,表示值为零的指针。

  

两者都是整数并且具有相同的值,因此它们可以互换使用。

并且此代码也是:

char const *keyword[] = { "do", "for", "if", "register", 
                              "return", "switch", "while", NULL };

在此代码中,NULL允许搜索表的函数检测表的结尾。那么,我们可以互换NULL和NUL宏吗?

2 个答案:

答案 0 :(得分:15)

NUL是ASCII字符代码0的表示法。

NULL stddef 中为空指针定义的宏。

所以,没有,它们不能互换使用。

答案 1 :(得分:12)

没有标准化的NUL宏,至少在C中没有。

此外,NULL优于普通0字面值,它向读者发出信号“嘿,我们正在处理指针”,这可能被认为是一种优势。

在C ++中,成语很长一段时间只是写0,但是他们似乎已经颠倒了它并且由于某种原因引入了新的文字nullptr

在C中,我建议为指针编写NULL,为字符编写'\0'