ios - 数组的内存地址

标签 ios objective-c arrays

请帮帮我。我对这个内存地址感到很困惑。

    NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3", nil];

    NSLog(@"Address of array =  %p",&arr);
    NSLog(@"Array's element Address =  %p",arr);
    NSLog(@"Address 0th element %p",[arr objectAtIndex:0]);

    NSLog(@"Address of array =%lx",(long)&arr);
    NSLog(@"Array's element Address =  %lx",(long)arr);
    NSLog(@"Address 0th element %lx",(long)[arr objectAtIndex:0]);

    **Output**

    Address of array =  0xbfffd804
    Array's element Address =  0x866f340
    Address 0th element 0x4748
    Address of array =bfffd804
    Array's element Address =  866f340
    Address 0th element 4748

我得到了这个输出,但我对第二个和第三个输出感到困惑,因为根据我的知识,第二个和第三个输出应该是相同的。所以请任何人都可以解释我。提前致谢。

最佳答案

如果这是一个普通的 C 数组你可能是对的,但是你的 arr 是一个类的实例,而不是 NSMutableArray 用来存储它的对象的任何数据结构的基地址(这可能是也不是普通的 C 数组)。

关于ios - 数组的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20560872/

相关文章:

ios - 检查 nil 对象的最佳方法

ios - Obj-C 用于横向的替代 Storyboard

java - 如何在 Java 中对字符串数组(以名称与数字连接的形式)进行排序?

javascript - 将 setTimeout 与 Canvas 结合使用以打印数组中的文本

arrays - 如何在 Nim 中连接两个数组?

ios - UICollectionView 不显示任何图像

iphone - 如何将用户名/密码传递给iOS外部浏览器进行身份验证?

iOS - 如何将所选图像放置到适当的 ImageView (imagePickerController)

ios - 如何使用最新的 Facebook SDK 从 iOS 中的 Facebook API 获取用户的生日?

ios - BOOL UIButton 上的按钮选择