这是我的测试代码
NSArray *arr = [[NSArray alloc] initWithObjects:@"1", @"2", nil];
NSLog(@"arr: %p", arr);
NSLog(@"arr[0]: %p", arr[0]);
NSLog(@"arr[1]: %p", arr[1]);
在我看来, arr 和 arr[0] 应该有相同的地址
就像这样
int iarr[2] = {2, 5};
printf("iarr: %p\n", iarr);
printf("iarr[0]: %p", &iarr[0]);
iarr: 0xbfffdbec
iarr[0]: 0xbfffdbec
但为什么我使用 %p 记录地址,它显示如下内容
2013-07-16 12:51:35.472 TEST[6766:14003] arr: 0x8422f70
2013-07-16 12:51:35.473 TEST[6766:14003] arr[0]: 0x8a5e0
2013-07-16 12:51:35.473 TEST[6766:14003] arr[1]: 0x8a5f0
为什么 arr 和 arr[0] 有不同的地址?