C++内存分区
概述
1. C++程序在运行时可以将内存分为5大区:代码区、常量区、全局区、堆区、栈区
代码区
1. 代码区存放源程序的二进制代码,代码区的内容是只读的
常量区
1. 常量区中存放字符串常量等,常量区也是只读的
2. const修饰的全局变量存放在常量区
全局区
1. 全局区存放全局变量和static修饰的全局变量和静态变量
堆区
1. 堆区的内存由程序员负责分配和释放,同时堆区的生长方向是低地址向高地址方向
栈区
1. 栈区由编译器控制分配和释放,栈区的生长方向是从高地址到地址
2. const修饰的局部变量不是常量,不存储在常量区,而是存储在栈区
3. 实际测试发现栈区变量中的地址确实比堆区变量中地址很高,但是实际测试中发现栈的生长方向也是由低地址到高地址