首頁 >後端開發 >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