繁体   English   中英

数组的内存地址

[英]Memory address of array

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

    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数组)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM