题目

static 局部变量:统计函数被调用次数

思路

本题演示 static 局部变量:函数每次被调用时计数加一。

在函数内声明 static int cnt=0,每次进入函数 cnt++ 并输出或返回;主程序多次调用同一函数观察计数递增。

解题分析

static 局部变量只初始化一次,生命周期贯穿程序,下次调用保留上次的值。适合计数调用次数,但不是线程安全的共享状态。

完整程序

#include <stdio.h>

static int bump(void)
{
    static int cnt = 0;
    cnt++;
    return cnt;
}

int main(void)
{
    int n;
    if (scanf("%d", &n) != 1 || n < 1) {
        return 1;
    }
    for (int i = 0; i < n; i++) {
        printf("%d\n", bump());
    }
    return 0;
}

运行示例

输入:

3

输出:

1
2
3