私は次のようないくつかのコードを持っています:
#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のままになるのはなぜですか。