重学c语言系列三---变量在内存中的布局

 这次或许以后的东西不像写教科书那样,写板书来介绍所有的东西,我觉得那样不如直接给人推荐一本大师的c语言书就好了,我想吧自己学习过程中的思考过程记录下来,不仅仅是阐述结果,而是结果是怎么来的,当然这么写,很可能随着思路不知道扯到哪里,显的逻辑性不强。但是我还是想记录下自己的学习方法或者思维方法。  另外我觉得关于内存这一块牵扯的比较多,可能一次讲不完,我会继续补充的。

       扯了这么多,其实我想知道的是编程使用变量,它在内存中如何存储?

      为了弄明白这一点,我们先来看看整个内存大致是如何分布的,事先声明,以下举例或者说明皆在linux 32位操作系统,4G内存的环境下,如果你用自己环境尝试和我说的结果不同欢迎讨论。如何知道内存是如何分布的?我选择的方法是百度,所采用的资料在文章结尾都有链接,不保证在将来是否失效,如果觉的相关部分我说的不够清楚,请自行参阅,欢迎学有所成后提供建议。

     先粗略的看,内存分为用户模式空间和内核空间,如下图:


 再详细一点划分如下:

 

一步跳到这里确实有点突兀,一般的介绍应该都是只讲堆,栈,数据段,代码段

稍微解释一下,栈中所存放的数据是局部变量,堆(heap)中存放的是动态分配的内存,(malloc/free,new/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值