#include <stdio.h>
int func(void){
static int a=0;
return ++a;
}

main(){
int b,i;
for(i=0;i<3;++i)
b=func();
printf("%d",b);
}

何故これの結果が3になるのかがわからりません。
2回目,3回目のfunc関数呼び出しでは、static変数になっててもa=0になるから
returnはずっと1だと思ったんですが違うようで・・お願いします