static变量 全局变量

#include <stdio.h>
int k=1;
void f(int c){
static int a=0;
a+=2;
c-=2;
k*=2;
printf("a=%d,",a);
}
int main(){
int i,n,b=5;
for (i=0; i<2; i++) {
f(b);
printf("b=%d,k=%d\n",b,k);
}
return 0;
}
这个程序要怎么看啊 谁能帮我分析一下🥺

static变量:只会被处理一次,这次调用了 f() 函数,执行a=0,但下一次调用 f() 函数,不执行a=0
全局变量:可以理解为写在函数外面的变量,哪里都可以调用

a=2,b=5,k=2
a=4,b=5,k=4
static变量 全局变量两者的作用域有区别。