C++程序在执行时,将内存大致分为以下几个区域:
-
栈:系统自动分配的空间,只要不特殊声明,就定义在栈区,函数的区域也在栈上。栈是向下增长的。(const 在栈里)
堆:使用动态内存分配的方式可以申请堆空间,用完要手动释放。new malloc
全局区:全局变量、静态变量(static),生命周期是程序整个运行过程中。
常量区:代码中的数字,字符等常量,例如’a’,—1.2等
代码区:存放可执行代码,避免频繁的读硬盘
这四个区域的意义在于,不同的区域存放不同的数据,赋予不同的生命周期,给程序员更大的操作空间。
在程序编译后,生成了.exe可执行文件,未执行该程序前分为两个区域:
- 代码区:存放CPU执行的机器码。
- 数据区:存放已初始化的全局和静态变量,常量数据(如字符串常量)。
标签:常量,代码,程序,c++,区域,存放,内存 From: https://www.cnblogs.com/whcjob/p/17888910.html