1. 程式人生 > >nil、Nil、NULL和NSNull的區別

nil、Nil、NULL和NSNull的區別

2. NSNull

NSNull和nil的區別在於,nil是一個空物件,已經完全從記憶體中消失了,而如果我們想表達“我們需要有這樣一個容器,但這個容器裡什麼也沒有”的觀念時,我們就用到NSNull,我稱它為“值為空的物件”。如果你查閱開發文件你會發現NSNull這個類是繼承NSObject,並且只有一個“+ (NSNull *) null;”類方法。這就說明NSNull物件擁有一個有效的記憶體地址,所以在程式中對它的任何引用都是不會導致程式崩潰的。參考程式碼如下:

3. Nil

nil和Nil在使用上是沒有嚴格限定的,也就是說凡是使用nil的地方都可以用Nil來代替,反之亦然。只不過從程式設計人員的規約中我們約定俗成地將nil表示一個空物件,Nil表示一個空類。參考程式碼如下:

4. NULL

我們知道Object-C來源於C、支援於C,當然也有別於C。而NULL就是典型C語言的語法,它表示一個空指標,參考程式碼如下:

int *ponit = NULL;