OC中的内存地址:
一:指针变量自己所在的内存地址(指针变量也是变量,也有内存地址)
二:指针变量所指向的内容的内存地址
NSString *a = @"test";
NSString *b = @"test";
//打印对象的内存地址
NSLog(@"%p----%p",a,b);
打印结果:
0x10c16d930----0x10c16d930
//打印指针自己的内存地址
NSLog(@"%p----%p",&a,&b);
打印结果:
0x7ffee3ad89d8----0x7ffee3ad89d0
上述代码中 a 是指针变量,变量就有内存地址。&a相当于取址运算,&a 是指针变量a的内存地址。
NSLog(@"%p----%p",a,b);打印的是指针变量 a 指向的内容“test”所在的内存地址。又因字符串存储在字符常量区,相同的字符串不会重新分配内存,故a和b所指向的内容的内存地址相同。
网友评论