【发布时间】:2012-11-20 11:57:32
【问题描述】:
我有一些代码如下:
#include <stdio.h>
#include <stdlib.h>
static counter = 0;
static flag = 0;
int main()
{
int number = 3;
int i = 0;
for(i; i< number; i++)
{
if(counter >= number)
{
counter = 0;
flag = 1;
}
counter ++;
printf(" counter = %u\n", counter);
printf(" flag = %u\n", flag);
}
return 0;
}
每次计数器达到3时,标志应该是1,但是为什么计数器达到3时,标志仍然是0?
【问题讨论】:
-
因为根据代码,
i永远不会到达3。试试i <= number -
如果我只想循环3次,循环到第三次,设置flag为1?
-
然后你可以把
counter++放在for旁边。我的意思是在if之前