关于C#中各种数据类型在内存中的物理位置?

C#中的各种数据在真实物理内存中是如何表示的,为什么要划分成各种数据。能不能解释得再具体一些呢?谢谢!... C#中的各种数据在真实物理内存中是如何表示的,为什么要划分成各种数据。
能不能解释得再具体一些呢?谢谢!
展开
 我来答
百度网友6eed2f8
2010-12-04 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3817万
展开全部
内存中全是010101....
只不过是有区域划分,我们能用的只是分给程序的区域,好多系统保留用的内存是不允许你访问的
对于程序来说,我们需要了解的是堆区和栈区
栈是用来放固定类型的地方,编译时就能确定存在,并确定大小的,都在这个地方
比如程序里定义一个int型的变量i,那么这个i就是在栈区放的(不管是i的内容还是i本身)
而对于运行中随时生成的对象则在堆区,这个堆区是没有格式的,或者说是什么都能放的

之所以划分各种数据类型是为了方便检查,提高运行效率
比如int型是4个字节,那么运行时只要找4个字节的内存肯定没有错,否则的话就需要某种机制标示这个类型占几个字节,然后才能对应的找到这个数据。
再比如int[10],这个数组,我们要找第5个数字怎么办,只需要知道这个数组的开始内存位置,然后再偏移5x4=20个地址的位置就能直接找到第5个这个数字了

学过C的,或者编译原理的对这理解更深刻,我也不是很清楚具体细节,上面只是我个人的理解
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式