前言
开这个iOS原理Tips系列只两个目的
- 学不如练,学习过程中做点笔记,加深印象
- 年初吹了个牛皮简书更新到13万字,现在还差不少
在一篇博客看到这句话,一脸懵逼,虽然眼睛还是往下瞄,强忍着告诉自己,不要轻易放过自己的知识盲区。
先提问:
如图,咋看出来的?
自问自答:
知识点1: 栈区由系统分配,自高向低且连续;堆区自低向高。
- 看出来了么?还没有知识点2: %@打印对象,%p打印对象内存地址,&符号取指针的内存地址。
- 诶,&p1,&p2,&p3 通过%p打印,内存地址自高向低分配,还连续,栈区无疑。看懂前半句:p1,p2,p3 的地址是在栈区
知识点3: OC 的类对象
知识点4: 程序的内存空间
- 结合3、4,对象的内存地址是在堆区,而类本身【不是指类对象】是在代码段。图中这后半句表达的应该是“Person类的对象”,从打印的地址来看的确是这样