int f(int n)
{
static int s=1;//将s定义为一个静态常量
//静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
while(n) s*=n--; //枚举n~1,乘入s
return s;
}
main()
{
int i,j;
i=f(3); j=f(5)+f(2); //i = 3! = 6, j = 6*5! + 720*2! = 2160
printf("\nThe outputis:\n");
printf("i=%#x,j=%d \n",i,j); //%x代表十六进制格式,中间加个#代表前面加上0x
}
输出为:
The outputis:
i=0x6,j=2160