| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:类与内存一些疑问
只看楼主 加入收藏
shizjun
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2008-9-16
收藏
 问题点数:0 回复次数:1 
类与内存一些疑问
C#是完全面向对象的,因此所有的方法与数据都封装在类中.当对一个对象分配了内存空间其实是对其中的数据分配内存,
那么与它对应的方法在内存中是如何分配的,是和数据放在一起还是分开,如果分开那么对象如何来找到这些方法来进行调用,并且这些方法又是怎么找到这些数据进行操作呢
搜索更多相关主题的帖子: 内存 疑问 
2008-10-08 15:33
wuwenya
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-10-5
收藏
得分:0 
当程序去执行函数时候可能发生的情况会根据所用操作系统以及编译器的不同而有所不同:
(1):指令指针(是一块特殊的内存区域,直接建立在中央处理器cpu内部)的地址值增加1,指向函数调用后的下一条指令,这个地址随后被放入堆栈中,它将被作为函数(方法)返回时的返回地址.
(2):在堆栈中为你所生命的返回值类型开辟新空间.
(3)被调方法的地址存储在为此目的而划出的一块特殊内存区域中,此时系统将这个地址加载到指令指针中,于是执行下一条指令将位于被调用函数中
(4)当前的堆栈的栈顶被记录下来并存入一个叫栈桢的特殊指针中,从现在开始在函数(方法)返回前加入堆栈的任何数据都将被视为方法的局部数据
(5)函数的所有变元都被放入堆栈
(6)现在执行指令指针中的指令,也就是执行函数的第一条指令
(7)局部变量按其定义的方式被压入堆栈....在运行期间,局部变量也被添加到堆栈,当函数返回时,这些值都从堆栈中被弹出而删除.
2008-10-08 22:26
快速回复:类与内存一些疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.010476 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved