一、
内存区域的分类:栈、堆、全局(静态)变量区、代码段
栈:局部变量、函数调用,系统自行管理,不大
堆、动态内存,需要程序员自行管理,很大
全局(静态)变量区:全局变量、静态变量
代码段:函数的代码
二、变量的总结
如下表所示
下面给一个例题;
static int j;
void fun1(void)
{
static int i=0;
i++;
}
void fun2(void)
{
j=0;
j++;
}
int main()
{
int k=0;
for(k=0;k<10;k++)
{
fun1();
fun1();
}
return 0;
}
请考虑一下,i和j的值分别是什么?为什么?
分析如下:
j是静态全局变量,每次被函数fun2()调用,都会被初始化,因此j是1;
i是静态局部变量,只在本函数中有效,只初始化一次,并且函数结束不会被销毁,因此I的值是10
答案:i=10 ;j=1