老狗——C/C++的NULL、Java的null、Python的None

C/C++的NULL、Java的null、Python的none

1.C/C++的NULL

NULL,用來表示空指針的宏,其實質就是0,表示不指向任何內存地址的空指針。

nullptr是一個C++關鍵字,從C++11開始引入,表示空指針。

在C++中NULL直接定義爲0,而在C裏,NULL是定義爲(void*)0的,這也很好理解,C語言可以隱式轉換,而C++卻是需要顯示的寫出類型轉換的。像int *p = (void *) 0;

2.Java的null

Java中,null是一個關鍵字,大小寫敏感,用來標識一個不確定的對象。

null既不是對象也不是一種類型,它僅是一種特殊的值,你可以將其賦予任何引用類型,也可以將null轉化成任何類型,但不能賦給基本類型變量,例如int、double、float、boolean。如果將null賦值給包裝類object,然後將object賦給各自的基本類型,編譯器不會報錯。

比如:
int a = null; 是錯誤的
Ojbect o = null; 是正確的。

點擊查看Java null的一些理解

3.Python的None

Python中沒有NULL,只有None,None有自己的特殊類型NoneType。

None是一個對象,而NULL是一個類型。

在Python中,None、False、0、""、[]、()、{}都相當於False。

關於None的CSDN某網友的精彩描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章