NULL,nil,Nil,NSNull 傻傻分不清楚

2019-05-08  本文已影响0人  SlothYP

1. 一图胜千言

name value 含义
NULL (void *)0 C 指针的字面空值(在指针环境中就是0),OC 中和 nil 一模一样
nil (id)0 OC中的对象的字面空值,可以用 nil 来调用方法而不会崩溃
Nil (Class)0 OC 中类的字面空值
NSNull [NSNull null] 一个用来代表空值的单例对象,只有一个方法:+ (NSNull *)null,常用在集合类型中代表空值(例如 NSArray,不允许存放 nil/NULL)

前三者本质上都是(void *)0

2. 扩展:

2.1 void * 的含义

void *就是指 C 语言中的 void 指针。void 指针表示没有特定类型的指针,它可以存储任何类型的地址,并且可以转换为任何类型的指针。

2.2 一些有趣的事实:

参考:

上一篇 下一篇

猜你喜欢

热点阅读