操作系统把C代码分成四个区:
(1)堆区(heap):一般由程序员分配释放(动态内存申请与释放),若程序员不释放,则不会析构。
(2)栈区(stack):程序局部变量。 由编译器自动分配释放,存储函数的参数值,局部变量的值等。程序结束时自动析构。
(3)全局区(静态区static):有常量和全局变量和静态变量的存储室放在一块的,初始化的全局变量和静态变量是在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,该区域在程序结束后由操作系统释放。
常量区:字符串常量和其他常量的存储位置,程序结束后由操作系统释放。
(4)代码区(code):存放函数体的二进制代码。
流程说明
1、操作系统把物理硬盘代码load到内存
2、操作系统把c代码分成四个区
3、操作系统找到main函数入口执行