请帮帮我。我对这个记忆地址感到很困惑。
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
我得到了这个输出,但是我对第二和第三输出感到困惑,因为根据我的知识,第二和第三输出应该是相同的。所以请任何人都可以解释我。提前谢谢。
答案 0 :(得分:4)
如果这是一个普通的C数组,你可能是对的,但你的arr
是一个类的实例,而不是NSMutableArray用来存储其对象的任何数据结构的基地址(可能不是一个普通的C数组,或者)。