C的堆,栈,静态区,代码区

引言 

小编我呢是一个嵌入式方向的爱好者,C语言也是嵌入式必学语言,简单的讲讲我对C中内存相关的理解,若有不当之处,希望大家多多包涵。

作为一个优秀的码农,搞明白程序里的各个数据,以及代码是存储在哪里是很重要的,如果是找工作的友友,那么你肯定就知道堆栈,是面试官常问的问题;下面我就简单的讲讲吧,希望能对你有所帮助。

一 .    堆(heap)

        1 .  由程序员分配和释放的;

        2 .  这个区域用于动态内存分配;

        3 .  通常使用  malloc  申请一块空间,使用完后使用  free  在将其释放。

二 .    栈(stack)

1 . 存了什么

                                  1 .  局部变量                   :函数体内的变量

                                  2 .  函数的参数

                                  3 .  函数的地址               :函数嵌套情况:  函数原本在正常执行过程中,调用了另外一个函数,那么他会去执行那个函数,执行完后再继续执行原本的代码,那么问题来了,cpu怎么知道,回来从哪里开始执行呢,这时就需要有一个地址记下来,而这个地址就是存储栈区的,

2 .  特点      

        先进后出 : 特点很简单,大家如果记不住可以把他想象成手枪弹夹,最先装进去的子弹是不是最后打出的呢,

三 .  全局区

         全局区分为全局变量区(存放全局变量的),静态变量区(static修饰的全局或局部变量),常量区(字符串,const修饰的全局变量)

四 .  代码区   

        顾名思义,他是以二进制存放代码的区域;                 

六,小结   

        所有的东西都总结在在这个图里啦,是不是一目了然呢哈哈

最后

希望能够对一起学习的友友们有点帮助,友友们的支持就是我写下去的动力哈哈~

如果觉得本文还有不足,或者有不清楚的地方,欢迎评论区留言,或者私信交流~

最最最后,,创作不易,动动你发财的手手,点个赞赞好吗~

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值