美文网首页
指针与地址

指针与地址

作者: 愤怒小鸟飞呀飞 | 来源:发表于2018-05-11 11:37 被阅读0次

Person *p = [[Person alloc] init];
NSLog(@"p对象的地址:%p",p);
NSLog(@"p指针的地址:%p",&p);
优秀博客地址:
https://www.cnblogs.com/lulipro/p/7460206.html

 //打印对象的内存地址
       NSLog(@"内存地址1:%p",a);
       //打印指针自己的内存地址
       NSLog(@"内存地址2:%p",&a); 
  id classObject = objc_getClass([@"Person" UTF8String]);
    
    unsigned int count = 0;
    Ivar *ivarList = class_copyIvarList(classObject, &count);
    //赋值
//    NSLog(@"ivar:%s",Ivar);
    for (int i = 0; i < count; i++) {
        Ivar ivar = ivarList[i];
        NSString *memberName = [NSString stringWithUTF8String:ivar_getName(ivar)];
        NSLog(@"============ivarName:%@",memberName);
      
        Person *p = [[Person alloc] init];
        object_setIvar(p, ivar, @"苹果");
        NSLog(@"============p.name:%@",p.name);
    }

如上述代码所示,Ivar *ivarList ,ivar数组指针,
Ivar ivar = ivarList[i]; 地址变量

class_copyIvarList实现如下

Ivar *class_copyIvarList(Class cls, unsigned int *outCount)
{
    Ivar *result = nil;
    unsigned int count = 0;
    int i;

    if (!cls) {
        if (outCount) *outCount = 0;
        return nil;
    }

    if (cls->ivars) {
        count = cls->ivars->ivar_count;
    }

    if (count > 0) {
        result = (Ivar *)malloc((count+1) * sizeof(Ivar));

        for (i = 0; i < cls->ivars->ivar_count; i++) {
            result[i] = (Ivar)&cls->ivars->ivar_list[i];
        }
        result[i] = nil;
    }

    if (outCount) *outCount = count;
    return result;
}

result[i] = (Ivar)&cls->ivars->ivar_list[i];
copylist中返回的数组中存地址
Ivar *result = nil;
返回的数组是一个指针变量

相关文章

  • 指针与地址

    Person *p = [[Person alloc] init];NSLog(@"p对象的地址:%p",p);N...

  • 地址与指针

    前序: 当然你也可以用其他循环方法哦。 本节导图如下: 地址与指针基本操作 指针声明的代码规范 所以,养成一个良好...

  • iOS开发技能树之C语言-指针

    一、指针与指针变量 指针:就是地址,一个变量的指针就是这个变量的存储地址。 指针变量:用来存放指针(地址)的变量,...

  • 06-----A 指针

    指针是用来保存地址的变量 。。point to指针保存le变量的地址 与地址有关的符号:&取地址 数...

  • 第五章 指针与数组

    5.1 指针与地址 指针是保存变量地址的变量。 ANSI C使用void*(指向void的指针)代替 char* ...

  • C语言入门开发-指针

    指针1、认识指针[地址]内存每个直接都有一个唯一编号,称为地址[指针]存放数据的地址 变量与内存地址的关系1、变量...

  • 玩转指针与地址

    计算机的核心部件: 中央处理器(CPU) 随机存储器(RAM)相当于海量的“开关”,中央处理器可以打开、关闭、访问...

  • C++入门

    本文主要说一说在C++中的指针、地址、引用等。适用于小白菜鸟。 指针与地址 首先来了解指针与地址,参见如下代码: ...

  • 指针的值是地址

    指针和地址指针是变量,地址是常量,指针的值是地址。

  • C语言之指针[<重点>]

    指针:指针就是地址,地址就是指针。地址就是内存单元的编号。指针变量是存放地址的变量。指针和指针变量是不同的的概念。...

网友评论

      本文标题:指针与地址

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