美文网首页
NULL、nil、Nil 和NSNULL

NULL、nil、Nil 和NSNULL

作者: xiari1991 | 来源:发表于2018-04-27 11:17 被阅读1次

    转:nil、Nil、NULL和NSNull区别
    NULL、nil、Nil这三者对于Objective-C中值是一样的,都是(void *)0,那么为什么要区分呢?又与NSNull之间有什么区别:

    NULL是宏,是对于C语言指针而使用的,表示空指针
    nil是宏,是对于Objective-C中的对象而使用的,表示对象为空
    Nil是宏,是对于Objective-C中的类而使用的,表示类指向空
    NSNull是类类型,是用于表示空的占位对象,与JS或者服务端的null类似的含意

    野指针

    什么是野指针呢?野指针就是随机指向一块内存的指针。
    如果一个指针被定义成了野指针,那对这个指针的使用的危害是多么的大,它可能改变程序中任何地方的值。
    
    那到底造成野指针的原因有哪些?
    a.指针指向一块已经释放的内存。
    
    b.指针指向一块没有访问权限的内存。
    
    下面我们来讲讲怎么来避免野指针:
    
    a.给指针赋值的时候,先检查指针是否分配了合理的内存空间。
    
    b.释放内存的指针要给指针赋值为NULL
    

    相关文章

      网友评论

          本文标题:NULL、nil、Nil 和NSNULL

          本文链接:https://www.haomeiwen.com/subject/pxdblftx.html