在C语言中,进程可在内存中分别存入五大分区:
1、text:也称为代码段,其中主要用于存放二进制指令、常量、被const修饰过的初始化过的全 局变量、静态局部变量;该分区为只读权限,若强制修改将会产生段错误。
2、data:也称为数据段,其中主要用于存放初始化过的全局变量、静态局部变量。
3、bss:也称为静态数据段,主要用于存放未初始化过的全局变量、静态局部变量 。
Ps:该段内存在进程运行前自动清理为0
4、heap:也称为堆,该段主要由程序员手动管理,其存储空间足够大,但使用过程相对复杂。
5、stack:也称为栈,主要用于存放局部变量、块变量,由系统自动申请、释放内存,存储空间 相对较小,但使用过程更
以上提到了一些变量,下面引入变量的分类:
变量在分类时,主要按照存储位置、生命周期以及作用范围三个方面进行区分。
1、全局变量:即定义在函数外的变量,存储于数据段及静态数据段(data\bss);其生命周期由程序开始维持到程序结束;在整个程序任意位置均可调用。如下图定义,num定义于主函数main()之外,则num为一个全局变量。
#include<stdio.h>
int num = 10;
int main()
{
printf("%d",num);
}