首頁 >後端開發 >C++ >C 中的 NULL 與 0:我應該使用哪一個作為空指標?

C 中的 NULL 與 0:我應該使用哪一個作為空指標?

Patricia Arquette
Patricia Arquette原創
2024-12-25 11:05:18514瀏覽

NULL vs. 0 in C  : Which Should I Use for Null Pointers?

空指針的困境:NULL 與0

在C 編碼實踐的掛毯中,出現了關於使用NULL 與空指針的0 (零)。這個討論的起源在於 C 的早期,當時 NULL 被定義為 (void*)0。這個約束限制了它對 void 指標的分配,使其有些不切實際。因此,開發人員採用了使用 0 作為空指標的約定。

儘管 C 不斷發展,但偏好仍然存在。有些程式設計師(如作者)偏好 0,因為它直觀地用作空值,並且與真值測試相容(if (p && !q))。相反,其他人則基於美學主張 NULL。

為了解決這個持續存在的問題,讓我們考慮一下 C 的創建者 Bjarne Stroustrup 的觀點。根據 Stroustrup 的 C 風格和技術常見問題解答,NULL 實際上與 C 中的 0 同義,這取決於個人喜好。他建議使用 0 來避免宏,並強調預標準的 NULL 定義有時會導致意外行為。

在 C 11 中,引入了 nullptr 關鍵字來明確定義空指標值。然而,Stroustrup 建議專注於程式碼功能,而不是專注於細微差別。

最終,NULL 和 0 之間的選擇仍然是個人喜好問題。兩種方法都有其優點,但都沒有本質上的優越性。確保編碼團隊或專案內的一致性很重要,但沒有客觀理由明確地選擇一種選擇而不是另一種選擇。

以上是C 中的 NULL 與 0:我應該使用哪一個作為空指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn