#include<stdio.h>
int jc(int n);
int main()
{
int n,i,total;
printf("请输入一个数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("%d!=%d\n",i,jc(i));
}
return 0;
}
int jc(int n)
{
static int f=1;
f*=n;//jc函数调用结束,f的值还在
return f;
}
静态局部变量是在编译时赋值的(即只赋初值一次),在程序运行时它已有初值。以后每次调用函数时不再重新赋初值只是保留上次函数调用结束时的值。
#include<stdio.h>
int main ()
{
static int a;
static char b;
printf("%d\n",a);/在定义局部变量时不赋初值的话,则对静态局部变量来说,
编译时自动赋初值 0(对数值型变量),或空字符’\0’(对字符变量)/
printf("%c前面有一个空\n",b);
printf("%c%c%c%c%c前面有五个空\n",a,a,a,a,a);
}