由一道编程题体验到static的用法:
**Static 定义静态局部变量:运算阶乘更为方便**
举例如下:
两段代码,为两种情况做对比;
此段代码未用static:
#include<stdio.h>
int fun(int i);
int main()
{
int i,n;
printf("Please input n: ");
scanf("%d",&n);
printf("Output:\n");
for(i=1;i<=n;i++)
{
printf("%d!=%d\n",i,fun(i));
}
return 0;
}
int fun(int i)
{
if(i==0)
return 1;
else
return (i*fun(i-1));
}
此段代码也可实现运算阶乘;
之后比对利用static定义静态局部变量:运算阶乘更为方便:
int fun(int i);
int main()
{
int i,n;
printf("Please input n: ");
scanf("%d",&n);
printf("Output:\n");
for(i=1;i<=n;i++)
{
printf("%d!=%d\n",i,fun(i));
}
return 0;
}
int fun(int i)
{
static int a=1;
a=a*i;
return a;
}
运算结果一致,更为简便;