首页 >后端开发 >C++ >为什么C删除后不自动将指针设置为NULL?

为什么C删除后不自动将指针设置为NULL?

DDD
DDD原创
2024-11-11 01:53:02440浏览

Why Doesn't C   Automatically Set Pointers to NULL After Deletion?

删除后自动置空:为什么不呢?

执行删除操作后自动将指针设置为 NULL 的做法是程序员争论的话题。许多人认为这一措施将显着减少无效指针引起的崩溃的发生。然而,C 标准并没有采用这种方法,这让用户好奇这一决定背后的原因。

根据 C 的创建者 Bjarne Stroustrup 的说法,有几个因素导致了排除自动指针无效:

性能注意事项:

引入额外的清零指令指针可能会影响删除操作的整体性能,尤其是在性能至关重要的情况下。

常量指针:

常量指针指的是无法修改的内存位置。自动将此类指针设置为 NULL 可能会导致未定义的行为,因为不允许修改 const 对象的内容。

但是,Stroustrup 也承认这些问题可以通过对 const 指针进行专门处理来解决。

该标准允许对无法清零的右值(临时对象)进行删除操作。语言本身施加的这种技术限制构成了自动指针无效的另一个障碍。

以上是为什么C删除后不自动将指针设置为NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!

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