在 C 中使用 NULL 或 0 作为指针:个人偏好还是客观原因?
在 C 的早期,是否存在的问题使用 NULL 或 0 作为空指针的表示是一个实际的困境。然而,随着语言的发展,这个决定已经演变成更多的偏好问题。
零与 NULL
历史上,一些程序员使用 0 作为空指针,而其他人则更喜欢符号常量 NULL,它被定义为值为 0 的空指针。后一种方法作为避免与数字混淆的方法而受到欢迎。
然而,正如 Stroustrup 在他的 C 风格和技术常见问题解答中解释的那样,“在 C 中,NULL 的定义是 0,因此仅存在审美差异。”这意味着 0 和 NULL 的计算结果相同。
个人偏好
0 和 NULL 之间的选择最终归结为个人偏好。一些程序员认为,在布尔上下文中使用 0 更有意义,因为它允许进行逻辑比较,例如 if (p && !q)。相反,其他人更喜欢 NULL 来显式指示空值并避免潜在的误解。
C 11 及以后
随着 C 11 的引入,一个新的关键字 nullptr ,是专门为表示空指针而创建的。 nullptr 提供类型安全性,可以用来代替 0 和 NULL,提供更一致和明确的解决方案。
结论
虽然没有硬性规则使用 NULL 或 0,通常不是主要问题。关键是保持代码库内的一致性并使用最适合程序员的偏好和风格的方法。
以上是C 中指针的 NULL 或 0:偏好还是客观必要性?的详细内容。更多信息请关注PHP中文网其他相关文章!