NULL 與 nullptr:空指標表示形式的演進
在 C 0x 中,傳統的 NULL 巨集被 nullptr 取代。這種變化不僅僅是表面上的,而且是表面上的。它對語言對空指標的處理進行了重大改進。
為什麼要換?
NULL,定義為 0,在重載函數解析中產生了潛在的歧義。考慮以下程式碼:
void f(int); void f(foo *);
如果呼叫 f(NULL),編譯器不確定是呼叫 f(int) 還是 f(void *)。這種歧義可以透過使用 nullptr 來解決,它的類型為 std::nullptr_t 並且可以隱式轉換為任何指標類型。
nullptr 的好處
與NULL、nullptr 相比與合作時具有多種優勢指針:
以上是NULL 與 nullptr:為什麼 C 的空指標表示法會改變?的詳細內容。更多資訊請關注PHP中文網其他相關文章!