C程序一直由下面几部分组成:
1 正文段 :是CPU执行的机器指令部分;正文段通常是共享的,程序执行的时候是在内存中保持一份副本;正文段常常是只读的,这是为了防止程序意外操作破坏正文段
2 初始化数据段:就是通常所说的数据段,保存了程序中需要明确赋初值的变量,如出现在任何函数之外的申明 int cout = 24;
3 非初始化数据段:通常称为bss段,命名来自早期汇编的运算符, “block started by symbol”(由符号开始的块),特点是在程序开始之前,内核将此段初始化为0或空指针, 如出现在任何函数之外的申明 int array[100];
4 栈: 自动变量和每次函数调用所需保存的信息都放在此段中,每次调用时其返回地址以及调用者的环境信息都保存在栈空间
5 堆: 一般是进行动态存储分配的区域