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类指针使用nileg.
int *number = NULL; //代表number指针不指向内存中任何一块空间 Person *p1 = nil; //代表p1指针不指向任何一个对象