可编程序中的存储区域基本上分为:静态存储区,栈区,堆区,代码区。

1.静态存储区(全局存储区):该块内存在程序编译期间就已经分配好,并且在程序运行期间都一直存在,主要用于存储静态数据,全局数据和常量。

被static修饰的局部变量存储在这里,普通的局部变量存储在栈里。

2.栈:编译器在需要的时候再分配内存,里面通常存储普通的变量,并且它的内存分配运算是内置于处理器上的,执行效率很高。

3.堆:它的内存由程序管理,存储的一般时new,alloc 出来的对象。动态分配内存。

4.代码区:存放二进制代码。运行程序就是执行代码,代码想要执行就得加载到内存中。

4.文字常量区:存储程序中使用到的常量。程序运行结束后由系统释放。

关键字

static:

1.被static修饰的变量和普通变量有什么区别?

static修饰的变量存储在静态存储区,程序运行期间一直存在,普通的变量存储在栈中,它的生命周期跟生命它的函数周期一样。

2.被static修饰的全局变量和普通的全局变量有什么区别?

他们都存储在静态存储区,被static修饰的全局变量他只在声明它的文件中有效,普通的全局变量可以在其他的文件中调用。

最新文章

  1. WinForm BaseClass类常用通用方法
  2. c语言练习
  3. python星号变量
  4. openCV_java Canny边缘检测
  5. yii2表关联实例
  6. Memcached学习(一)
  7. Expedition(优先队列)
  8. 《Android系统开发》笔记
  9. Universal-Image-Loader分析:
  10. vs2017 .net core WebApp 去掉ApplicationInsights
  11. centos下安装并配置tomcat
  12. 快学 Scala 入门 3 部曲
  13. localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车
  14. A、B同时打开一个页面进行同一条数据库记录进行修改,A修改完成后提交表单,A修改的数据保存完成后;当B也修改完成后,提交数据进行数据修改。此时B修改的内容会覆盖A修改的内容,请问如何避免?
  15. MySQL中MyISAM与InnoDB的主要区别对比
  16. ORA-10858:在要求输入数字处找到非数字字符
  17. VC中添加头文件以及库
  18. 可以获取JVM信息的一些管理工具类
  19. 疯狂JAVA——第七章 java基础类库
  20. 基于C++11实现的线程池

热门文章

  1. C#学习-索引器
  2. Nodejs全局安装和本地安装的区别
  3. javaScript事件(七)事件类型之键盘与文本事件
  4. .NET轻量级任务管理类
  5. VS2017 cdkey
  6. P1514 引水入城 DFS
  7. IDEA链接mySql问题 : You have an error in your SQL syntax : 'OPTION SQL_SELECT_LIMIT=1000' (or 'OPTION SQL_SELECT_LIMIT=DEFAULT')
  8. 056 Java搭建kafka环境
  9. Ubuntu + 坚果云
  10. webapp用户身份认证方案 JSON WEB TOKEN 实现