iOS中的野指针、僵尸对象、空指针

野指针

野指针和空指针是不一样的,空指针没有储存任何的内存地址,而野指针指向的一块内存地址,但是该内存不可用。换句话说,野指针指向的对象已经被释放了。
<pre>Person *p =[[Person alloc]init];
[p setName:@"wan"];
[p release]; //指针p指向的对象已经被释放,但是该指针还能访问该内存地址
[p setName:@"zero"]; //所以此处不会报错</pre>

僵尸对象

在OC中,对象被释放后所占用的内存在没有被复写(重新分配给其他对象)前称为僵尸对象,这是野指针是可以访问该内存的,因为对象的数据还在,所以程序不会报错。但是该内存一旦重新分配给其他对象就会出现问题。

nil、Nil、NULL、NSNULL的含义和区别

nil:OC中的对象的空指针

Nil:OC中类的空指针

NULL:C类型的空指针

NSNull:数值类的空对象

showjoy_120.png

<h1 align = "center">喜欢文章的顺便支持下小店儿呗!😊😊😊😊😊😊😊😊</h1>
一款自用省钱,分享赚钱的平台!注册达人店店主优惠更多,app邀请码avypwr6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些基础的知识,经常混淆,特整理下 空指针: 1. 没有存储任何内存地址的指针就称为空指针(NULL指针)。 2....
    刘应阅读 10,985评论 4 20
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 8,687评论 0 6
  • 1,NSObject中description属性的意义,它可以重写吗?答案:每当 NSLog(@"")函数中出现 ...
    eightzg阅读 9,615评论 2 19
  • 那帘子之外便是春天。清脆婉转的鸟鸣声和雨后泥土湿润的味道试图让春的气息透过这层薄薄的帘子,进到这间屋子里来。坐在窗...
    放过我自己阅读 1,254评论 0 0
  • 拖延的根源 1. 心理根源:主观时间与客观时间的矛盾 2. 生理根源:大脑中的拖延基因 3. 文化根源:家庭如何让...
    Crystal雯瑶阅读 1,189评论 0 0