C 空指標 NULL 與0的區別

2021-06-08 14:03:06 字數 439 閱讀 3087

空指標常量,ansi規定:規定預處理巨集null 為空指標常量,通常#define null 0或(void *)0

誤區:有的機器不同型別的指標使用不同的內部表示,例如將字元指標的空指標常量定義為#define null ((char *)0),這樣的null定義對於接受字元指標的函式沒有問題,但對於其他型別的指標仍然需要進行顯示的轉換,本來合法的構造可能會失敗,例如file *fp=null;

注意1:null只能用做指標,非指標變數中不能用null

注意2:執行時的整數0轉化為指標不一定是空指標,只有常量整數0才能保證空指標

空指標 從 0 到 NULL,再到 nullptr

nullptr null 是乙個巨集定義 undef null if defined cplusplus define null 0 else define null void 0 endifint my ptr 0 int my ptr null null 的問題 include void f c...

C C 的空指標,NULL,0和nullptr

在c和c 中,null和0都可以使用。c通常使用null,c 通常使用0 include int main void include using namespace std int main 1 void foo char 2 int main void foo int 1 void foo cha...

Mysql的空值與NULL的區別

陷阱一 空值不一定為空 空值是乙個比較特殊的字段。在mysql資料庫中,在不同的情形下,空值往往代表不同的含義。這是mysql資料庫的一種特性。如在普通的字段中 字元型的資料 空值就是表示空值。但是如果將乙個空值的資料插入到timestamp型別的字段中,空值就不一定為空。此時為出現什麼情況呢 我先...