未初始化的局部变量是静态的吗?

-2 c variables static

如果变量被初始化(i = 0),每次调用函数 func 时它仍然是 1,但是

当 i 未初始化时:

#include <stdio.h>

int funct(void);
int main(void)
{
    funct();
    funct();
    funct();

    return 0;
}

int funct(void)
{
    int i;  
    static int j = 0;

    i++;
    j++;

    printf(" i = %d         j = %d\n", i, j);
}
Run Code Online (Sandbox Code Playgroud)

输出是

 i = 1      j = 1
 i = 2      j = 2
 i = 3      j = 3
Run Code Online (Sandbox Code Playgroud)

我不明白为什么变量 i 的行为像静态变量!

Bo *_*o R 5

该值未指定,所以一切皆有可能。但是,很可能每次调用都会重用相同的内存funct,并且相同的内存会被重用,并且只会i拾取上次运行留下的旧值。