内存区域的分类及对各变量

一、
内存区域的分类:栈、堆、全局(静态)变量区、代码段

栈:局部变量、函数调用,系统自行管理,不大
堆、动态内存,需要程序员自行管理,很大
全局(静态)变量区:全局变量、静态变量
代码段:函数的代码

二、变量的总结
如下表所示
在这里插入图片描述

下面给一个例题;

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

猜你喜欢

转载自blog.csdn.net/w1216702236/article/details/83718994