C++ 内存五大分区

C/C++中内存分5大区:栈,堆,全局/静态存储区,常量存储区,代码区(也称自由存储区)。

代码区:毫无疑问是用来存储可执行代码的地方,只读不可写。

栈区:用来存储一些局部变量以及函数的参数等,栈区的大小由编译器决定,效率比较高,但空间比较有限。存放在栈区的变量,栈具有自动清除的特性,超出变量作用域后会被回收。向低地址生长。

堆区:由程序员手动申请空间,在程序运行期间均有效。堆区的变量需要手动释放,否则只会在程序结束后被回收。向高地址生长。

全局/静态存储区:存储程序的静态变量以及全局变量,整个程序的生命周期都存在的。另外,字符串常量也是放在静态区的。


你可能感兴趣的:(C++ 内存五大分区)