【发布时间】:2016-10-11 08:21:44
【问题描述】:
这是我研究静态变量的代码。
#include <stdio.h>
/* function declaration */
void func(void);
static int count = 5; /* global variable */
main() {
while(count--) {
func();
}
return 0;
}
/* function definition */
void func( void ) {
static int i = 5; /* local static variable */
i++;
printf("i is %d and count is %d\n", i, count);
}
我在终端上编译并运行它并得到这个输出
i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0
我的问题是为什么当count 的值等于0 时循环停止了?为什么它没有走向负无穷?
【问题讨论】:
-
也许看看
while(0)做了什么? -
寻找
while循环的定义。直到条件为false或0。 -
顺便说一句,
count是static与问题无关。使用int count = 5;你会得到完全相同的结果
标签: c