static
成员变量保存值0
处于哪个状态?
当我们宣布它时?
static int x;
当我们定义它时?
int Simple::x;
答案 0 :(得分:2)
两者都没有意义,因为声明和定义与程序的运行时状态无关。
在程序启动之前,在任何用户代码运行之前,它在静态初始化阶段初始化为零。
答案 1 :(得分:1)
编译器在声明时将其初始化为0,除非您为其指定任何其他值。
答案 2 :(得分:1)
对象是由定义创建的,而不是声明。因此,说初始化对象的定义就不那么错了。但是,您不知道发生这种情况的确切时间。你只知道在调用main之前会发生这种情况。这就是为什么我说错误而不是更正确的原因。
是的,内置类型的静态数据成员默认为零初始化。
答案 3 :(得分:1)
如果没有其他初始化,则在创建第一个对象时,所有静态数据都会初始化为零。