2012-10-03 111 views
4

空指针与悬空指针之间是否有意义的区别?看起来这些都是用于不指向任何内容的指针的术语。是一个悬挂指针使用来引用某个东西,现在不是 - 其中一个空指针只是一个指向任何东西(不管它指向过去的指针)的指针的想法?空指针与悬空指针

回答

8

空指针只意味着指针不指向任何东西,或者在某些语言中意味着它不知道它指向什么。但是因为它是一个空指针,你知道这一点,代码知道这一点,所以没问题。一个悬挂指针是一个你认为指向的东西,但实际上已不在那里,因此指针实际上是不准确的,但不知道它。

11

指针术语:

  • 悬空(或野生型)指针:指向某个地方,而不是一个有效的对象的指针。
  • 空指针:指向特定指定的越界位置的指针,程序永远不会合法存储数据。特殊类型的悬空指针。
  • 未初始化的指针:从未分配给某个地址的指针。一种悬挂指针。
  • 陈旧的指针:用来指向某个东西的指针,但目标已被删除(通过删除运算符,空闲或超出范围)。一种悬挂指针。

悬空的指针可以说是指向Hyperspace或指向另一个维度,除了空指针,它通常被称为指向Nothing。