每次调用父函数时,是否重新分配C中的静态变量?

0 c variables static

假设我在C中的函数内声明了一个静态变量.

如果我多次调用该函数,那么每次调用函数时是否会在内存中重新分配静态变量?

如果确实重新分配,为什么始终保持最后一个值?

例:

void add()
{
    static int x = 1;
    x++;
    printf("%d\n",x);
}

int main()
{
    add(); // return 2
    add(); // return 3
    add(); // return 4
}
Run Code Online (Sandbox Code Playgroud)

Aar*_*ron 13

否 - 静态变量基本上是位于本地名称空间内的全局变量.