4. 全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。 5. 常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多),比如字...
全局/静态存储区:存放全局变量和静态变量(包括静态全局变量与静态局部变量),初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块 文字常量区:常量在统一运行被创建,常量区的内存是只读的,程序结束后由系统释放。 程序代码区:存放程序的二进制代码,内存由系统管理 二、可执行程序程序三段-Text段,Date段,Bs...
4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放(RO) 5、程序代码区—存放函数体的二进制代码。(RO) 注: 1、对于RO、RW和WI的概念不是特别清楚的朋友,可以参考我的另外一篇文章,里边有详细的解释。 2、按我个人理解为了减少内存碎片的产生,编译器可能会将堆区又分为block和heap区。block由...
4. 常量区(Read-Only or Constant Section) 常量区用于存放程序中不可修改的常量数据。这个区域通常是只读的,防止程序试图修改这些常量,任何修改尝试都会导致程序异常(如段错误)。 存储内容: 字符串常量:例如const char* str = “hello”;中的"hello"字符串存放在常量区。 const修饰的全局变量:如const int a =...
const修饰的全局变量存放在常量区。 程序运行期间,常量区的内容不可以被修改。 5. 代码区 程序执行代码存放在代码区,其值不能修改(若修改则会出现错误)。 字符串常量和define定义的常量也有可能存放在代码区。 二、STM32存储器分配 1. 随机存储器—RAM ...
而C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下: 1、栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内存量有限,比如iOS中栈区的大小是...
4、全局/静态存储区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。 5、常量存储区:这是一块比较特殊的存储区,它们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多) ...
静态区)。常量区:存放常量,一般是字符串常量;全局区(静态区):存放全局变量和静态变量。
data区里主要存放的是已经初始化的全局变量、静态变量和常量 2.2 bss区 bss区主要存放的是未初始化的全局变量、静态变量,这些未初始化的数据在程序执行前会自动被系统初始化为0或者NULL 2.3 常量区 常量区是全局区中划分的一个小区域,里面存放的是常量,如const修饰的全局变量、字符串常量等 在VS下运行结果如...
可以理解为.bss段是存放未初始化全局变量和静态变量的区域,而.data段是存放已初始化全局变量和静态变量的区域。这样的划分可以有效地管理全局变量和静态变量的内存使用,并且在程序执行期间保持其值的一致性。 |常量区 常量区(Constant Area):常量区用于存储常量数据,例如字符串常量。这些数据在程序运行期间保持不变,存...