黑马程序员技术交流社区
标题:
nil、Nil、NULL、NSNull的区别
[打印本页]
作者:
笑声不断
时间:
2016-1-14 15:56
标题:
nil、Nil、NULL、NSNull的区别
nil、Nil、NULL、NSNull一直了解,但是一直忘,所以今天总结下。
我的理解中他们重要的区别在于能够符值给不同的对象,类,c,或者集合。
例如:1、nil一般是符值给对象。
2、Nil一般符值给类。
3、NULL一般符值给其他类型(如:基本类型、C类型)的空指针
4、NSNull通常表示集合中的空值
这些符值能够是对应的指针称为空指针,防止野指针错误导致程序崩
为什么上面的array里面的空对象不直接用nil?
如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4
所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确。
Dog *dog = nil;
Class class = Nil;
int *p = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];
作者:
364827317
时间:
2016-1-14 16:36
总结的好啊
作者:
guyuexing
时间:
2016-1-14 19:56
学习学习学习
作者:
木叶
时间:
2016-1-14 21:15
这个要顶一下的
作者:
小ㄟMò
时间:
2016-1-14 22:54
学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2