靜態變量(static):有局部變量,也有全局變量。
靜態局部變量:在函數體內用static說明的變量稱為靜態局部變量,屬於靜態類別。
特點:
(1)它占據一個永久性的存儲單元。隨着文件的存在而存在。
(2)靜態局部變量是在編譯時賦初值,在程序執行期間,一旦存儲單元中 的值改變,就不會再執行賦初值的語句。未賦初值的變量其值為0。
#include "stdio.h"
int f(int a)
{
int b=0;
static int c=3;//有static和沒有static的輸出結果不一樣
b=b+1,c=c+1;//有static輸出7 8 9 ,沒有static輸出7 7 7
return (a+b+c);
}
int main()
{
int i,a=2;
for(i=0;i<3;i++)
printf("%d\n",f(a) );
return 0;
}
#include "stdio.h"
int fun(int n)
{
static int f=1;
f=f*n;
return f;
}
int main()
{
int i;
for(i=1;i<=5;i++)
printf("%d\n",fun(i) );
return 0;
}
//輸出結果是1 2 6 24 123