#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

说明根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。

因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量

posted on 2014-08-04 21:09  snowdrop  阅读(160)  评论(0编辑  收藏  举报