不明白这个运行结果,求帮助

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include <stdio.h>
int f(int a);
     main( )
    { int a=1,i;
         for (i=0;i<3;i++)
             printf("%d", f(a));  
    }
   
    int f(int a)
  {     int b=0; 
        static int c=2;
           b++; c++;
        return (a+b+c);
  }

运行结果及报错内容
我的解答思路和尝试过的方法 这个程序的运行结果是567,我以为会是555。请问为什么不是555呢?运行过程中是a的值发生变化了吗?如果是的话,为什么?谢谢
我想要达到的结果

static int c = 2;静态变量,只申明一次,所以之后没错执行都是在原先的基础上执行的,不会再变成2

static修饰的变量只会赋值一次,不会重置
后几次进入函数c的值会累加的