你好,我正在学习C语言考试,遇到了一个问题,但是我无法找出答案。
一个程序员编写了一个统计用户数量的程序(Count.h, Count.c):
/******** FILE: Counter.h ***********/
static int counter = 0;
int getUsersNum ();
/******** END OF FILE: Counter.h ****/
/******** FILE: Counter.c ***********/
#include "Counter.h"
int getUsersNum ()
{
return counter;
}
/******** END OF FILE: Counter.c ****/
还需要一个测试人员来测试它:
/******** FILE: CounterMain.c ***********/
#include "Counter.h"
#include <stdio.h>
int main ()
{
int i;
for (i=0;i<5;++i)
{
++counter;
printf ("Users num: %d\n", getUsersNum());
}
return 0;
}
/******** END OF FILE: CounterMain.c ****/
令人惊讶的是,输出结果为:
Users num: 0
Users num: 0
Users num: 0
Users num: 0
Users num: 0
我不明白为什么使用静态变量后计数器没有增加,他们是如何得到这样的输入的?
谢谢大家!