c - 空指针的应用

标签 c pointers null-pointer

我在一家公司面试,他们问我“空指针在C中的应用是什么”?我告诉他们什么是空指针以及它如何导致段错误。然而,他们对这个答案并不满意。我以前从未听说过这样的事情。如果有人有任何想法,请分享。

谢谢

最佳答案

他们问的是何时需要使用 NULL 指针,而不是何时会导致问题。

经典的答案是,当没有什么可指向的时候使用它们。例如,当列表末尾时,列表中的下一个指针 -> 没有下一个项目。

所以在你的代码中你就可以了

if(nextItem != NULL)
{
  // do stuff with nextItem
}
else
{
// the end
}

正如 mooseboy 指出的那样,这是一个哨兵值,即您的代码识别为具有决定性值的特殊值。

NULL 是完美的指针哨兵,因为 NULL 被假定永远不是指针的有效值(例如,您不能使用 0x000042,因为 42 可能是真实地址)

关于c - 空指针的应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789929/

相关文章:

c - 为什么有时会对一个字符串进行两次检查?

cholmod 长版本函数返回空指针 — C 编程

c - C 结构中函数的参数

c - 取消引用结构指针内的指针

c - 如何将文本添加到 C 中的变量?

c - 将两个消息结构链接在一起

c - 对于所有数据类型,所有数据指针在一个平台中的大小是否相同?

Android - 处理屏幕方向变化的对话框

c - 将 char 数组的第一个字符分配给另一个变量

c - 错误: initialization with “{…}” expected for aggregate object - c