我有一個關於靜態變量的簡單問題。如果我在一個函數中聲明瞭一個靜態變量: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