- #include <stdio.h>
- int text(int n);
- int main()
- {
- int i;
- for(i=1;i<=5;i++)//循环调用5次TEXT函数
- {
- printf("%d的阶乘为%d\n",i,text(i));
- }
- return 0;
- }
- int text(int n)
- {
- static int t=1;//T保留上次调用结束时的值
- t=t*n;//在上次结束值基础上*n
- return t;//返回值t是N的阶乘
- }
- /*程序输出结果为:
- 1的阶乘为1
- 2的阶乘为2
- 3的阶乘为6
- 4的阶乘为24
- 5的阶乘为120
- */
复制代码
这里说的就是你说的把变量t 生命周期延长至程序结束,
如果你直接定义int型 则默认为声明auto int ,即自动局部变量也叫动态变量。调用时分配内存。结束后清空。而用static 声明了就是分配内存给了值以后保存住。
|