unsigned long Fact(unsigned int n, unsigned int a) {
if (n == 0 || n == 1)
return a;
else
return Fact(n - 1, n*a);
}
在静态存储区分配内存的变量:生存期是整个程序,全程占据内存
在动态存储区中分配内存的变量:生存期是定义它的语句块
声明变量的存储类型: 存储类型 数据类型 变量名;
C存储类型关键字:
auto(自动变量) static(静态变量) extern(外部变量) register(寄存器变量)
其中:extern用于在定义点之前或在其他文件中访问该变量
#include<stdio.h>
long Func(int n);
int main() {
int i, n;
printf("Input n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
printf("%d!=%ld\n", i, Func(i));
}
return 0;
}
long Func(int n) {
//静态变量在编译的时候被初始化一次,所以运行程序的时候下面一句不会被执行,而且静态变量具有记忆功能。
static long p = 1;
p = p * n;
return p;
}
