一、程序与进程
1. 程序与进程的关系
程序是静态的,进程是动态的。进程是程序运行时的状态。程序没有时间限制,进程拥有生命期。
2. 进程的内存分配
当程序被执行时变成进程,计算机会为进程分配内存和CPU。这里介绍下,计算机为进程分配的内存情况。
计算机会为进程分配代码区,堆区,数据区和栈区。其中,代码区存放程序代码。其余三区均用于存放数据。堆区用于存放通过malloc申请的数据空间。数据区用于存放程序的全局变量。栈区用于存放程序的局部变量。
需要注意的是,堆区存放顺序是由低地址向高地址延伸,而栈区存放顺序是由高地址向低地址延伸。
3. 作用域和生存期
- 作用域:是指标识符能够使用的范围。只有在作用域内标识符才能被使用。此概念针对编译和链接过程
* 对于局部变量和形参的作用域在该函数内,这种作用域称为函数域;
* 对于全局变量和函数的作用域是从其所在位置开始一直到代码末尾,