C语言中NULL和NUL的区别

标签: , , ,

很多人混淆C语言中的NULL和NUL,《Expert C Programming》里面有个 Handy Heuristic:

The One ‘l’ nul and the Two ‘l’ null

Memorize this little rhyme to recall the correct terminology for pointers and ASCII zero:

The one "l" NUL ends an ASCII string,

The two "l" NULL points to no thing.

Apologies to Ogden Nash, but the three "l" nulll means check your spelling. The ASCII character with the bit pattern of zero is termed a "NUL". The special pointer value that means the pointer points nowhere is "NULL". The two terms are not interchangeable in meaning.

翻译成中文,就是:

一个‘L’的NUL和两个‘L’的NULL

牢记下面的话,它有助于回忆指针和ASCII码零的正确术语:

一个‘L’的NUL用于结束一个ASCII字符串,

两个‘L’的NULL用于表示什么也不指向(空指针)

当然,如果出现了三个‘L’的NULLL,那就要检查一下有没有拼写错误了。ASCII字符中的'\0'被称为NUL。表示哪里也不指向的特殊的指针值则是NULL。这两个术语不可互换。

随机文章:

  1. 伪造电子邮件发送时间
  2. VBS的SendKeys,你真的懂吗?
  3. VBScript实现ZIP文件的压缩或解压(ZipCompressor)
  4. EditPlus的VBS语法高亮
  5. TL-WR703N进入OpenWrt的Failsafe安全模式

2 条评论 发表在“C语言中NULL和NUL的区别”上

  1. 五爷说道:

    这页面被greader一抓之后,格式全乱了。。。
    严重怀疑你是故意的。。

  2. logbird说道:

    NUL 默认 是没定义的 也不能 直接使用 NUL。。。

留下回复