删除后自动置空:为什么不呢?
执行删除操作后自动将指针设置为 NULL 的做法是程序员争论的话题。许多人认为这一措施将显着减少无效指针引起的崩溃的发生。然而,C 标准并没有采用这种方法,这让用户好奇这一决定背后的原因。
根据 C 的创建者 Bjarne Stroustrup 的说法,有几个因素导致了排除自动指针无效:
性能注意事项:
引入额外的清零指令指针可能会影响删除操作的整体性能,尤其是在性能至关重要的情况下。
常量指针:
常量指针指的是无法修改的内存位置。自动将此类指针设置为 NULL 可能会导致未定义的行为,因为不允许修改 const 对象的内容。
但是,Stroustrup 也承认这些问题可以通过对 const 指针进行专门处理来解决。
该标准允许对无法清零的右值(临时对象)进行删除操作。语言本身施加的这种技术限制构成了自动指针无效的另一个障碍。
以上是为什么C删除后不自动将指针设置为NULL?的详细内容。更多信息请关注PHP中文网其他相关文章!