我有一个关于静态变量的简单问题。如果我在一个函数中声明了一个静态变量:C中的局部静态变量范围
void main()
{
int k = 0
while(k<=4)
{
fun();
k++;
}
}
int fun()
{
static int i=5;
i++;
printf(Value %d\t", i);
return 0;
}
据我所知,函数将在返回后释放。但存储的值是i
。是一个像全局变量一样的静态变量。
'静态就像全局变量.'没有!!!!在生命时间方面是相同的,在可见度方面不同。 – 2014-09-01 06:20:25
请先修复语法错误,然后再转到哲学问题:) – 2014-09-01 06:21:02
C规范没有说明变量必须存储在哪里,只是局部静态变量生存期在整个程序中。但是,编译器通常将局部静态变量与全局变量一起存储。 – 2014-09-01 06:21:42