#include <stdio.h>
#include <stdlib.h>
//靜態局部變量static
int f(int a)
{
int b = 0;//等價auto int b = 0;
static int c = 3;
b = b + 1;//b調用結束後,釋放,再次調用時還是0+1
c = c + 1;//c是static局部變量,調用結束後並不釋放,保留上次調用結束後的值;所以c的值依次爲:3,3+1,4+1,5+1;
return (a + b + c);
}
int main15()
{
//auto int a, b;//等價int a,b;
int a = 2;
for (int i = 0; i < 3; i++)
printf("%d\n", f(a));
return 0;
}
//輸出1-5的階乘值,使用static靜態變量
int facf(int n)
{
//利用static靜態局部變量,函數調用結束後不釋放,保存函數調用結束後的值
static int f = 1;
f = f*n;
return f;
}
int main16()
{
for (int i = 1; i <= 5; i++)
printf("%d!=%d\n", i, facf(i));
return 0;
}
static靜態局部變量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.