1. 程序的内存分配
(1)静态存储区,全局变量和静态变量的存储是在静态区,初始化的全局变量和静态变量在一块区域 .data,未初始化的全局变量和静态变量在相邻的另一块区域 .bss。程序结束后由系统释放。
(2)栈区,由编译器自动分配释放,存放函数的参数值、局部变量等。
(3)堆区,一般由程序员分配释放,即动态内存分配。
(4)文字常量区,存放常量字符串,程序结束后由系统释放。
(5)程序代码区,用于存放程序的二进制代码。
2. 局部静态变量
在局部变量之前加上关键字 static,局部变量就变成一个局部静态变量。
在内存中的位置:静态存储区。
作用域:仍为局部作用域,当其所在的函数或者语句块结束的时候,作用域结束。然而局部静态变量离开作用域后,并没有被销毁,仍然驻留在内存中,只有该函数可以对其进行调用或者访问。
3. 全局静态变量
在全局变量前加上关键字 static,全局变量就变成了