c/c++内存分区
1.栈区(stack):
主要用于存储函数的参数和局部变量。栈区由系统进行内存管理,在函数执行完成时,系统自动释放栈区的内存,
而不需要用户的参与,整个程序的栈区的大小可以在编译器中由用户自行设定。
2.堆区
由用户手动申请,手动释放。 如果用户忘记对所申请的内存资源进行释放,该内存资源可能会在程序结束时由操
作系统进行释放(也可能不会)。
3.全局/静态存储区
用来存放程序中的全局变量和静态变量。 在c语言中,初始化的全局变量和静态变量存放在一块内存区域中,而未
初始化的全局变量和静态变量存储在另一块相邻的存储区域。而在c++中则没有在静态存储区中将初始化和未初始
化的进行分开存储,因为c++会对未初始化全局变量和静态变量进行默认初始化(一般默认初始化为0)。该存储区
域的数据会在程序结束后由系统来释放。
[注意]:
全局变量和静态变量在c++中存储方式是一样的,但不同的是全局变量在整个源代码中都是可以使用的,而静态变量
只能在当前文件中使用。
4.常量区
用来存储程序中的常量, 比如const常量,字符串常量等都存储在这个区域。该存储区域的数据会在程序结束时由系
统进行释放。
5.代码区
存放程序体的二进制代码。 比如我们程序中自定义的函数,其函数体就是以二进制代码的形式存储在这个区域的。
相关推荐
wbczyh 2020-07-05
文山羊 2020-11-07
susmote 2020-11-07
拉斯厄尔高福 2020-11-04
xceman 2020-10-23
hellojunz 2020-10-23
caojhuangy 2020-10-12
xinyupan 2020-09-28
lousir 2020-09-27
一个逗逗 2020-09-22
Maryhuan 2020-09-20
rkhstar 2020-09-09
DreamSnow 2020-09-09
aehousmantao 2020-09-03
tkernel 2020-09-03
abfdada 2020-08-26
svap 2020-08-25
二十不悔三十而立 2020-08-19
FlightForever 2020-08-17