iOS 之 OC中指针与对象的区别

此篇想纠正一直以来很多人对理解指针与对象概念的误区, 举一些简单的例子:
比如:
UIImage *image = [[UIImage alloc] init];

在这里的 image 实质是一个指针变量, 并且该指针指向了利用 UIImage 类 进行 alloc - init 创建出来的实例对象, 而对象则保存在内存中的某个位置, 只不过这个对象被一个指针变量 image 引用着.
NSLog(@"%p - %p",image, &image);

上面是取出 image 指针变量的地址, 和 image 指针指向对象所在内存空间的地址进行打印 .
0x100001030, 0x7fff5fbff6f8

打印之后,显示是截然不同的两个地址.
希望大家不要混淆对象和指针的关系, 也不要误以为指针就是对象.

作者:Howeix
链接:https://www.jianshu.com/p/ca66606342f8
來源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(iOS 之 OC中指针与对象的区别)