美文网首页
OC对象和指针

OC对象和指针

作者: Bel李玉 | 来源:发表于2020-09-06 13:59 被阅读0次

有如下代码:

        LYPerson *p1 = [LYPerson alloc];
        NSObject *p2 = [p1 init];
        NSObject *p3 = [p2 init];

        NSLog(@"%@ - %p -%p", p1, p1, &p1);
        NSLog(@"%@ - %p - %p", p2, p2, &p2);
        NSLog(@"%@ - %p - %p", p3, p3, &p3);

输出结果为:

<LYPerson: 0x101a287b0> - 0x101a287b0 -0x7ffeefbff508
<LYPerson: 0x101a287b0> - 0x101a287b0 - 0x7ffeefbff510
<LYPerson: 0x101a287b0> - 0x101a287b0 - 0x7ffeefbff500

为什么会用相同的输出,&p1,&p2, &p3的值又各不相同呢?

解:
p1,p2,p3 为同一个对象,即 p1,p2,*p3 指向同一块内存区域,%p 打印的是 p1,p2,p3的对象内存地址, &p1表示,存放p1 指针的内存地址。综上所述,前两个都是打印的 存放对象的地址值,最后一个打印的是 存放指针的地址值

相关文章

  • 02-OC中对象的isa指针和superclass指针

    OC中的isa指针和superclass指针 OC中的对象分为哪一类 instance对象(实例对象) class...

  • OC对象和指针

    有如下代码: 输出结果为: 为什么会用相同的输出,&p1,&p2, &p3的值又各不相同呢? 解:p1,p2,p3...

  • iOS-面试题1-NSObject本质

    目录: NSObject本质 OC对象的分类 isa指针和superclass指针+窥探Class KVO和KVC...

  • nil Nil NULL NSNull

    nil:指向oc中对象的空指针(对象),nil是一个指向不存在对象的指针 Nil:指向oc中类的空指针 NULL:...

  • 2-OC对象的分类

    OC对象分为三类 instance对象isa指针其他成员变量 class对象isa指针superclass指针协议...

  • 九、自动引用计数ARC @GeekBand

    ARC OC默认的内存管理机制 受ARC管理的对象 OC对象指针 Block指针 使用attribute((NSO...

  • nil,Nil,NULL,NSNull

    nil: OC中对象为空,指向不存在的对象指针 Nil:OC中类为空,指向0的类指针 NULL:C指针为空,在指针...

  • nil、Nil、NULL的区别

    nil:指向oc中对象的空指针,针对对象。 Nil:指向oc中类的空指针,针对类。 NULL:指向其他类型的空指针...

  • 各种nil,野指针,僵尸对象

    nil:OC中的对象的空指针 Nil:OC中类的空指针 NULL:C类型的空指针 NSNull:数值类的空对象 野...

  • 深入理解Runtime

    目录 1.OC对象1.OC对象的分类2.isa指针、superClass指针总结 2.对象底层数据结构1.实例对象...

网友评论

      本文标题:OC对象和指针

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