【问题标题】:Confusing Nulls in c [closed]c中令人困惑的空值[关闭]
【发布时间】:2011-07-31 10:07:35
【问题描述】:

请解释以下关于 C 或 C++ 的事情:

  • 空指针

  • 空指针的内部表示

  • 空指针常量 - 0

  • NULL 宏

  • ASCII 空字符 (NUL)

  • 空字符串 ("")。

【问题讨论】:

  • 嗯...不是吗?你的问题是什么?这是您可以轻松地在网上或在好的教科书中自行查找的内容。您是否有什么特别不明白的地方希望我们澄清一下?
  • 嗯,我想知道它们之间有什么大的区别,因为我在一次采访中被问到有什么区别,我真的无法解释它们之间的区别。

标签: c++ c null


【解决方案1】:

空指针是一个不指向任何对象的指针。

没有指定内部表示,特别是不必全部为零。

值 0 可以转换为空指针。

NULL 宏被定义为一个可以转换为空指针的值,在 C++ 中它通常只是 0,而在 C 中通常是 (void*)0,但如果实现决定如此,也可以是其他值。

NUL 字符是具有值0 或'\0' 的字符。

字符串"" 只是一个空字符串。

【讨论】:

  • FWIW,一个无效的指针也是一个没有指向对象的指针。
  • 是的,空指针也是无效指针。 :-)
猜你喜欢
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-05
  • 2017-09-16
  • 2013-07-25
  • 1970-01-01
相关资源
最近更新 更多