1. 程式人生 > >nil和null的區別

nil和null的區別

點擊 指針 href 報錯 csdn per 區別 tail 對象

  • NULL?
  • ?

    ?? ? 只能作為指針變量的值.
    如果1個指針變量的值是NULL值代表.
    代表這個指針不指向內存中的任何1塊空間

    ?

    ?? ? NULL其實等價於0? NULL其實是1個宏.
    就是0

    ?

    ?

    ? 2. nil

    ?

    ?? ? 只能作為指針變量的值.
    代表這個指針變量不指向內存中的任何空間.?

    ?? ? nil其實也等價於0
    也是1個宏.
    就是0.

    ?

    ?? ? 所以, NULL和nil其實是一樣的

    ?

    ?

    ? 3. 使用建議.

    ?? ?

    ?? ? 雖然使用NULL的地方可以是nil
    使用 nil的地方可以使用NULL
    但是不建議大家去隨便使用.

    ?

    ?? ? C指針用NULL

    ?? ? ? ? int *p1 = NULL; p1指針不指向內存中的任何1塊空間.

    ?

    ?? ? OC的類指針用nil

    ?? ? ? ? Person *p1 = nil; p1指針不指向任何對象.

    ?

    ?

    ? 4. 如果1個類指針的值為nil
    代表這個指針不指向任何對象.

    ?? ? Person *p1 = nil;

    ?

    ?? ? 那麽這個時候
    如果通過p1指針去訪問p1指針指向的對象的屬性
    這個時候會運行報錯.

    ?? ? 那麽這個時候,如果通過p1指針去調用對象的方法
    運行不會報錯
    但是方法不會執行 沒有任何反應


    本文來自 空中海 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/liuyinghui523/article/details/73611995?utm_source=copy

    nil和null的區別