加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Stack – Frame – Objective-C中的堆

发布时间:2020-12-16 07:30:03 所属栏目:百科 来源:网络整理
导读:我在本网站上发现的所有问题仅涉及Stack vs Heap而不是 讨论框架所以这是我的问题.不要区分这三者. 我知道的: 帧: 框架就像黑板,例如函数的变量. 在函数运行时,存储所有实例变量 在该功能的框架内.当一个函数被调用时 框架在堆栈顶部创建. 堆: 可以将堆栈
我在本网站上发现的所有问题仅涉及Stack vs Heap而不是
讨论框架所以这是我的问题.不要区分这三者.

我知道的:

帧:
框架就像黑板,例如函数的变量.
在函数运行时,存储所有实例变量
在该功能的框架内.当一个函数被调用时
框架在堆栈顶部创建.

堆:
可以将堆栈可视化为帧的物理堆栈.
当执行方法(或函数)时,它会分配一个
堆栈中的内存块.

堆:
所有对象指针都存在于堆上.

Stack和Frame很清楚(我想)但是我对Heap声明是对的吗?

解决方法

Heap: All object pointers live on the heap.

Stack and Frame is clear (I think) but am I right with my Heap statement?

不完全的.大多数(*)动态分配的对象存在于堆上,指向这些对象的指针存在于其他对象(或变量,它们本质上是相同的东西)中 – 可能位于堆栈或堆上. “对象”和“指向对象的指针”之间的这种区别在Objective-C中很重要(在所有语言中都不是这样),并且说所有“对象指针都存在于堆上”并不正确.

(*)“大多数”因为在堆栈上分配动态对象是可能的,有时非常有用.您无法使用Objective-C对象执行此操作,但可以使用C对象执行此操作(并且C是Objective-C的一部分).不要担心自己,这个脚注更能说明这里描述的模型是一种简化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读