首页 >后端开发 >C++ >C 指针:NULL、0 或 nullptr – 我应该使用哪一个?

C 指针:NULL、0 或 nullptr – 我应该使用哪一个?

Patricia Arquette
Patricia Arquette原创
2024-12-10 06:23:17541浏览

C   Pointers: NULL, 0, or nullptr – Which Should I Use?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn