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

时间:2015-04-08 04:12:02

标签: c++

所以这个方法:

int num (int a = 0)
{
static int b = a;
return b;
}

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

1 个答案:

答案 0 :(得分:5)

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

稍后调用只使用该值。

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