C 中的指针:NULL 与 0
在 C 的早期阶段,NULL 作为空指针的使用仅限于void 指针,使其不太实用。因此,程序员采用了使用 0(零)来表示空指针的约定。
尽管引入了 NULL 作为 0 的命名表示,但关于使用哪个的争论仍然存在。一些程序员主张使用 0,理由是使用逻辑运算符(例如 if (p && !q) do_something())将指针测试为真值的能力。他们认为,使用 NULL 需要与 NULL 进行显式比较,或者依赖于 NULL 等于 0 的假设。
其他人则提倡使用 NULL,呼应 Bjarne Stroustrup 的观点,即这只是一种审美差异,因为 NULL 被定义为 0在 C . Stroustrup 还强调了当 NULL 被错误地视为不同于 0 或非整数时可能会造成混乱。
虽然这两种方法都可以争论,但 Stroustrup 强烈建议不要过度关注次要细节。在 RAII 和异常时代,空指针的使用频率较低,但偶尔的必要性仍然存在。
对于那些喜欢命名表示的人,C 11 引入了 nullptr 作为空指针的指定关键字。此建议用于区分空指针和其他整数值,并消除潜在的混淆。最终,NULL 和 0 或 nullptr 之间的选择取决于个人喜好,因为这两种方法之间没有客观的优越性。
以上是C 指针:NULL、0 或 nullptr – 我应该使用哪一个?的详细内容。更多信息请关注PHP中文网其他相关文章!