在C++中,NULL是一個宏,其實質是0。而nullptr是從C++11開始引入的關鍵字。
在C語言中,NULL的定義爲(void )0,因爲C語言可以隱式轉換。但在C++中,int p = (void ) 0這樣的語句會報錯,因爲在C++中void 類型是不允許隱式轉換成其他類型的,因此在C++中直接將NULL定義爲0,一個int類型的變量。這樣導致在出現重載函數的情況下,程序會出現問題。
所以,C++11加入了nullptr,可以保證在任何情況下都代表空指針,而不會出現上述的情況。
————————————————
版權聲明:本文爲CSDN博主「酷小川」的原創文章
原文鏈接:https://blog.csdn.net/kksc1099054857/article/details/87938288