下面的程序:
#include
int main()
{
int x=2,y=3;
void fun7();
printf("x=%d,y=%d\n",x,y);
fun7();
printf("x=%d,y=%d\n",x,y);
fun7();
return 0;
}
void fun7()
{
static int x=1;
int y=10;
x=x+2;
y=y+x;
printf("x0=%d,y0=%d\n",x,y);
}
(1)记录输出结果
(2)分析自动变量的作用域和生存期。
(3)分析静态变量的作用域和生存期。
(1)输出结果
x=2,y=3
x0=3,y0=13
x=2,y=3
x0=5,y0=15
(2)
生存期和作用域都在其所在函数内
(3)
生命周期是从程序开始到程序结束。但是static变量的作用域并不等同于它的生存周期,它的作用域决定于它被定义的位置。