nil和null的区别

  • NULL?
  • ?

    ?? ? 只能作为指针变量的值.
    如果1个指针变量的值是NULL值代表.
    代表这个指针不指向内存中的任何1块空间

    ?

    ?? ? NULL其实等价于0? NULL其实是1个宏.
    就是0

    ?

    ?

    ? 2. nil

    ?

    ?? ? 只能作为指针变量的值.
    代表这个指针变量不指向内存中的任何空间.?

    ?? ? nil其实也等价于0
    也是1个宏.
    就是0.

    ?

    ?? ? 所以, NULL和nil其实是一样的

    ?

    ?

    ? 3. 使用建议.

    ?? ?

    ?? ? 虽然使用NULL的地方可以是nil
    使用 nil的地方可以使用NULL
    但是不建议大家去随便使用.

    ?

    ?? ? C指针用NULL

    ?? ? ? ? int *p1 = NULL; p1指针不指向内存中的任何1块空间.

    ?

    ?? ? OC的类指针用nil

    ?? ? ? ? Person *p1 = nil; p1指针不指向任何对象.

    ?

    ?

    ? 4. 如果1个类指针的值为nil
    代表这个指针不指向任何对象.

    ?? ? Person *p1 = nil;

    ?

    ?? ? 那么这个时候
    如果通过p1指针去访问p1指针指向的对象的属性
    这个时候会运行报错.

    ?? ? 那么这个时候,如果通过p1指针去调用对象的方法
    运行不会报错
    但是方法不会执行 没有任何反应



    本文来自 空中海 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/liuyinghui523/article/details/73611995?utm_source=copy

    原文地址:http://blog.51cto.com/13914991/2288048

    时间: 2024-10-29 23:58:04

    nil和null的区别的相关文章

    iOS中类和对象,还有nil,Nil,NULL的区别

    一.类和对象 类与对象的概念: 1.类是对同一类事物的高度抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法) 2.对象是类的一个实例,是一个具体的事物 3.类其实就是一种数据类型,它的变量就是对象 4.类与类之间的关系--继承关系 eg:学生与小学生,小学生也是学生,所以学生是小学生的父类,小学生是学生的子类 OC与面向对象: 1.对象是oc程序的核心.“万事万物皆对象”是程序中的核心思想 2.类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量及方法

    iOS-nil,Nil,NULL的区别

    一.简述 1.nil用来给对象赋值(Objective-C中的任何对象都属于id类型) 2.NULL则给任何指针赋值,NULL和nil不能互换 3.nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例) 4.NSNull则用于集合操作 5.虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; if (object) { NSLog(@"判断对象不为空"); } if (object == nil) { N

    nil 与 null 的区别

    nil 与 null 的区别 nil 连对象都没有 null 有对象,但对象内容为空 以NSString 类为例 NSString *str1 = nil; //连字符串对象都没有 控制台输出 (null) NSString *str2 = null: //有字符串对象,只是字符串里没有内容,即指向一个空对象. 控制台输出 (null) // NSString 这个类比较特别,因为用的非常普遍,所以不用 alloc 来创建,可以直接以下面这种方式来创建 NSString *str3 = @"&q

    Nil,nil,NSNULL,NULL的区别

    一.nil 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉: 或者对象由于某种原因,经过多次release,于是对象引用计数器为0了,系统将这块内存释放掉,这个时候这个对象为nil,我称它为"空对象".(注意:我这里强调的是"空对象",下面我会拿它和"值为空的对象"作对比!!!) 所以对于这种空对象,所有关于retain的操作都会引起程序崩溃,例如字典添加键值或数组添加新原素等. 二.NSNull NSNull和ni

    类和对象 nil/Nil/NULL的区别

    iOS-----类和对象,nil/Nil/NULL的区别 iOS中类和对象,nil/Nil/NULL的区别 类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据类型,它的变量就是对象. 类与类之间的关系——继承关系 A是B 如果这句话说的通,在设计程序的时候就可以看成是继承关系. 例如:学生与小学生 小学生也是学生,所以学生是小学生的父类,小学生是学

    关于nil和 null和NSNull的区别及相关问题

    1.nil和null从字面意思来理解比较简单,nil是一个对象,而NULL是一个值,我的理解为nil是将对象设置为空,而null是将基本类型设置为空的,个人感觉有点像属性当中,基本类型分配为assign NSString类型一般分配copy,而对象一般用retain.而且我们对于nil调用方法,不会产生crash或者抛出异常. 看一段 nil -> Null-pointer to objective- c object NIL -> Null-pointer to objective- c c

    <转>ios nil、NULL和NSNull 的使用

    nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N

    ios开发理解nil,Nil, NULL

    nil是一个对象指针为空,Nil是一个类指针为空,NULL是基本数据类型为空.这些可以理解为nil,Nil, NULL的区别吧. iOS剪切板 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = @"要赋给剪切板的字符串"; 1 ID 可以传递任何消息给id,但如果该id不支持这个消息就会返回一个运行时异常,通常就是:“unrecognisedselector sent to

    ios nil、NULL和NSNull 的使用

    nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N