刪除後自動置空:為什麼不呢?
執行刪除操作後自動將指標設為 NULL 的做法是程式設計師爭論的話題。許多人認為這項措施將顯著減少無效指標所造成的崩潰的發生。然而,C 標準並沒有採用這種方法,這讓用戶好奇這項決定背後的原因。
根據C 的創建者Bjarne Stroustrup 的說法,有幾個因素導致了排除自動指針無效:
性能注意事項:
引入額外的指令將指標清除可能會影響刪除操作的整體效能,尤其是在效能至關重要的情況下。
常數指標:
常數指標指的是無法修改的記憶體位置。自動將此類指標設為 NULL 可能會導致未定義的行為,因為不允許修改 const 物件的內容。
但是,Stroustrup 也承認這些問題可以透過對 const 指標進行專門處理來解決。
此標準允許對無法清除的右值(臨時物件)進行刪除操作。語言本身施加的這種技術限制構成了自動指針無效的另一個障礙。
以上是為什麼C刪除後不自動將指標設為NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!