不同类型变量的内存分配模型

C/C++语言不同于JAVA语言,C/C++语言的开发是建立在对程序员的绝对信任的基础上的,所以作为C/C++程序员我们没有办法不和内存打交道,而JAVA得编译器和虚拟机已经为我们隐藏了很多不为JAVA程序员为止,但是确实C/C++程序员必备的技术要点,我们可以这样理解当你开发JAVA程序时,其实是你和编译器,虚拟机并肩作战去开发C/C++程序,我认为这个比喻非常贴切,也足以说明C/C++语言的重要性和难掌握性。所以我不建议大学课程把C/C++最为入门的第一门语言,反倒建议其把JAVA作为入门语言更生动贴切,待其初见建立的编程思想后,在学习C/C++时难度就很小了。

既然说了作为一个C/C++程序员必须和内存打交道,那摩我们就必须树立起一些C/C++中与内存相关的一些名词。

One by one

首先我们要有一下几个概念


作用域:块作用域,函数作用域,函数原型作用域,文件作用域


翻译单元和文件:通常在源代码中包含一个或多个头文件,头文件会一次包含多个单独的物理文件,但是C预处理实际上用文件内容替换了#include指令,所以,编译器源代码文件和说有的头文件统一看成是一个包含信息的单独文件,这个文件被称为翻译单元。描述一个变量具有文件作用域是,通常是指在一个翻译单元是可见的。


链接:非文件作用域的变量都是无连接的,文件作用域的变量根据是不是static来确定是外链接还是内链接。外链接是对该程序可见的也叫全局作用域,内连接是对一个翻译单元来确定的简称文件作用域;


存储期:静态存储期,线程存储期,自动存储期,动态分配存储期


好了,有了以上的几个概念之后我们画图来学习:
(内存四区模型)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值