static的功能是使變數能一直存在,記憶體空間可以一直存留,直到程式結束。
同時若沒有指定出值,static會自動初始歸零。
例如放在function之中,第一次呼叫會歸零,但下次呼叫時並不會從零開始而是累加。
-----
以下,
Imput:輸入數字n、判斷若範圍在0<=n<=100之中,則累計count+1同時sum+=n。
Output:每次sum值和count值
#include <stdio.h>
#include <stdlib.h>
int CheckNumber(int n)
{
static int sum;
static int count;
if(n>=0&&n<=100)
{
sum += n;
count++;
printf("sum= %d\n",sum);
}
else{printf("Wrong number\n");}
return count;
}
int main()
{
int n;
for(;scanf("%d",&n);)
{
int count;
count = CheckNumber(n);
printf("count is %d\n",count);
if(count==10)
{
printf("finished\n");
break;
}
printf("\n");
}
return 0;
}