NULL
NULL
可以作为一个指针的变量,如果一个指针的值是NULL
,则代表这个指针不指向任何一块空间。NULL
在OC中的定义为#define NULL ((void *) 0)复制代码
可见NULL
是一个宏,其等价于0。
nil
nil
只能作为指针变量的值,代表这个指针变量不指向任何一块空间。nil
在OC中的定义为#define nil __DRAWIN_NULL//而#define __DRAWIN_NULL ((void *) 0)复制代码
可见nil
也是一个宏,也等价于0
NULL与nil的用法
-
首先
nil == NULL
为真,nil
与NULL
可以互用 -
一般,C指针使用
NULL
,OC类指针使用nil
eg.
int *number = NULL; //代表number指针不指向内存中任何一块空间Person *p1 = nil; //代表p1指针不指向任何一个对象复制代码