c資料庫null
發布時間: 2025-07-23 12:56:08
⑴ C/C++中,NULL和null的區別是什麼
C語言和C++對大小寫是敏感的,也就知是說null和NULL是區別對待的。NULL(如已宏定義)代表空地址,null(如沒宏定義)只是一個符號。
1、其實null和NULL都是字元串,具體看它們宏定義被定義成為什麼值。
2、在VS中NULL被定義為0,因為習慣上把宏定義的所有字元都大寫,當把NULL它賦值給指針時意思為空,當然你也可以把null定義為0了,都一樣。你把0直接賦值給指針也行,只要指針指向0就為空。
3、對於空(null)指針的概念,在 C 標准中明確地定義:值為 0 的整型常量表達式,或強制(轉換)為「void*」類型的此類表達式,稱為空指針常量。
4、當將一個空指針常量賦予一個指針或與指針作比較時,將把該常量轉換為指向該類型的指針,這樣的指針稱為空指針。空指針在與指向任何對象或函數的指針作比較時保證不會相等。
(1)c資料庫null擴展閱讀
在C中,任何類型的兩個空指針都保證比較相等。預處理器宏NULL被定義為實現定義的空指針常量,它在C99中可以可移植地表示為0隱式或顯式轉換為類型的整數值void*(指向void的指針)。
C標准沒有說空指針與指向內存地址0 的指針相同,盡管在實踐中可能就是這種情況。解引用空指針是C中的未定義行為,並且允許符合要求的實現假定任何被解除引用的指針不為空。
參考資料
網路—Null
網路—C/C++
熱點內容