C++中的静态变量

Bla*_*de3 4 c++

我今天遇到了一个有趣的问题.看看这个伪代码:

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

void main(void)
{
    while(true)
    {
       Loop();
    }
}
Run Code Online (Sandbox Code Playgroud)

即使x是静态的,为什么这段代码每次只打印"1"?在打印之前,我在每次迭代时将x重新初始化为1.但无论出于何种原因,x按预期递增.

Gar*_*ian 9

静态变量的初始化仅在第一次发生.之后,实例将在函数的所有调用中共享.