c语言学习静态变量中的问题

运行结果为什么不一样


#include 
int main ()
{     
    int k ; 
    for (k=0;k<3;k++)
    {
        static int x =3; 
        printf ("%d", x++);
    } 
        printf (" "); 
    for (k=0;k<3;k++)
    {     static int b ; 
        b=3; 
        printf ("%d",b++);
    }    
}

img

第二个for循环内 不是定义全局变量了。而是每次循环都赋值。

静态变量只被初始化一次,第二个for 你每次都给它赋值一个3,这个是赋值操作,第一次执行完它等于4,但是循环回来你又给它重新赋值为3