#include<stdio.h> int fun( int n) { static int f = 1; f = f * n; return f; } void main() { int i; for (i = 1; i <= 5; i++) printf("fun(%d)=%d\n", i, fun(i)); }
运行结果:
fun(1)=1
fun(2)=2
fun(3)=6
fun(4)=24
fun(5)=120
说明根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。
因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量