#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);
}
我正在看while循环,并且没有理由为什么它应该停在0但是当计数达到0时,它会停止。我尝试将count设置为0,并使用 - 并且它变为-1,因此没有理由为什么这应该从我看到的0停止。
答案 0 :(得分:1)
但是当计数达到0时,它会停止
这是错误的结论,它会在count
达到-1时停止,如果在循环之后立即放置print语句,则可以检查它。在这种情况下它不执行循环体,但这就是循环的工作原理。
答案 1 :(得分:0)
变量最后应用后使用的--
运算符。当count为零(计算为false)时,条件为false,然后它应用count--
(因此count为-1)然后退出循环。
对于您的文化,您可以执行--count
,在检查条件之前会减少count
。