C語言中,static關鍵字可以用在全局范圍,也可以用在函數范圍,還可以用在局部范圍! 先上實驗代碼: [cpp] #include <stdio.h> void func(int i){ if((i&0x01)==1){ static int j=1;//局部范圍定義的static變量j j++; printf("i=%d,j=%d.\n",i,j); } else{ static int j=0;//再定義一個static變量j j++; printf("\ti=%d,j=%d.\n",i,j); } //printf("j=",j);//error.變量j未被定義 return; } int main(){ for(int i=0;i<10;++i) func(i); return 0; } 代碼輸出如下: 從執行結果可以看出,if中定義的static變量j與else中定義的static變量j,互相獨立,而且都會保留“上一次的賦值結果”,同時,在if和else中定義的static變量,僅在if或else的局部范圍可見,局部范圍之外,不可見。