C语言-09
内存区域的划分(复习)
/* 内存区域的划分 1.代码区 存储代码 2.常量区 存储常量 3.全局区(静态全局区) 存储: 1.静态变量 2.全局变量 # include <stdio.h> int c; // 普通全局变量 static int d; // 静态全局变量 int main() { int a; // 普通局部变量 static int b; // 静态局部变量 int c; // 注意这个c不是上面的c,它们只是名字看起来一样而已 a = 10; // 普通局部变量没有默认初始值,所以需要自己赋值 printf("a = %d \n", a); printf("b = %d \n", b); printf("c = %d \n", c); printf("d = %d \n", d); // 通过以上 printf,可以总结规律:静态全局区,默认的初始值为0 // 作用域和生命周期 作用域 生命周期 普通全局变量 当前项目 程序开始到程序结束 静态全局变量 当前文件 程序开始到程序结束 普通局部变量 当前语块 当前语块 静态局部变量 当前语块 程序开始到程序结束 return 0; } 4.栈区 存储:普通局部变量 从定义时系统自动分配内存,离开当前语块系统就会自动回收内存 5.堆区 由程序员手动申请和释放 */