C语言静态局部变量问题

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我的解答思路和尝试过的方法
我想要达到的结果#include

int c=3;
void main()
{
static int a=2,d=0,i;
for(i=0;i<3;i++)
{d++;printf("%d",f(a));}

}
int f(int a)
{int b=0,d=0;
b=b+1;c=c+1;
return(a+b+c+d);}

不清楚为什么c的值会变,
a b c d
2 1 4 0
2 1 5 0
2 1 6 0

c正因为是静态变量,放在了main函数的外面,所以c=c+1,就会把c的值加上1 了