這樣一看才知道大家對空指針的概念如此渾濁哦!!
首先:
void* 這不叫空指針,這叫無確切類型指針.這個指針指向一塊內存,卻沒有告訴程序該用何種方式來解釋這片內存.所以這種類型的指針不能直接進行取內容的操作.必須先轉成別的類型的指針才可以把內容解釋出來.
還有'\0',這也不是空指針所指的內容. '\0'是表示一個字符串的結尾而已,並不是NULL的意思.
真正的空指針是說,這個指針沒有指向一塊有意義的內存,比如說:
char* k;
這裡這個k就叫空指針.我們並未讓它指向任意地點.
又或者
char* k = NULL;
這裡這個k也叫空指針,因為它指向NULL 也就是0,注意是整數0,不是'\0'
一個空指針我們也無法對它進行取內容操作.
空指針只有在真正指向了一塊有意義的內存後,我們才能對它取內容.也就是說要這樣
k = "hello world!";
這時k就不是空指針了.