为什么这确实有效?(静电还是东西?)

ggo*_*ogo -1 c++

所以这个方法:

int num (int a = 0)
{
static int b = a;
return b;
}
Run Code Online (Sandbox Code Playgroud)

可以用来设置和使用num(VALUE)返回一个值,但是我不明白为什么它在使用num()调用时仍然返回b.由于默认参数,它不应该返回0吗?b是静态的吗?对不起,如果这听起来很无趣,但我是这个语言的新手.

Che*_*Alf 5

静态变量初始化一次,第一次执行通过声明.

稍后调用只使用该值.

在C++ 11中,初始化是线程安全的.