静态成员变量保存值' 0'在哪个州?

时间:2014-12-02 15:58:58

标签: c++

static成员变量保存值0处于哪个状态?

当我们宣布它时?

static int x;

当我们定义它时?

int Simple::x;

4 个答案:

答案 0 :(得分:2)

两者都没有意义,因为声明和定义与程序的运行时状态无关。

在程序启动之前,在任何用户代码运行之前,它在静态初始化阶段初始化为零。

答案 1 :(得分:1)

编译器在声明时将其初始化为0,除非您为其指定任何其他值。

答案 2 :(得分:1)

对象是由定义创建的,而不是声明。因此,说初始化对象的定义就不那么错了。但是,您不知道发生这种情况的确切时间。你只知道在调用main之前会发生这种情况。这就是为什么我说错误而不是更正确的原因。

是的,内置类型的静态数据成员默认为零初始化。

答案 3 :(得分:1)

如果没有其他初始化,则在创建第一个对象时,所有静态数据都会初始化为零。