C 中的指標:NULL 與0
在C 程式設計史上,爭論很激烈:應該使用NULL 還是0 (零)空指針?雖然有些程式設計師堅持使用 0 的傳統,但其他程式設計師卻堅信 NULL。但哪種方法真正比較優越?
最初,NULL 在 C 中是不可用的,因為它的定義為 (void*)0。然而,隨著 C 11 的出現,遊戲規則發生了變化。現在,NULL 被明確定義為 0,使其在功能上與對應的數值相同。
0 的擁護者認為,這是測試真值的更合乎邏輯的選擇。如所提供的程式碼片段所示,零自然適合使用 if (p && !q) 等運算子的邏輯比較。另一方面,使用 NULL 需要與 NULL 進行明確比較,除非您假設 NULL 等於 0,這違反了命名它的目的。
Bjarne Stroustrup,C 的創建者,已經權衡了這個問題,指出 NULL 和 0 之間的選擇很大程度上是為了美觀。然而,他偏愛 0,因為他傾向於避免宏以及與 NULL 相關的潛在誤解。
最終,NULL 和 0 之間的決定取決於個人喜好。兩種方法都有其優點,因此請選擇最適合您的程式設計風格的一種。然而,值得注意的是,C 11 專門為此目的引入了關鍵字 nullptr,因此為了清晰和一致性,值得考慮使用它。
以上是C 中的 NULL 與 0:哪一個是更好的空指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!