2

如果我没有弄错,如果我要声明一个全局 char 数组,它的元素将被初始化为 \0。如果我要声明静态全局或静态局部,则相同。但是静态场呢?

4

2 回答 2

4

是的。在 C++ 术语中,字段称为“数据成员”。

C++03 标准的第 9.4.2.7 段指出“静态数据成员的初始化和销毁​​与非本地对象完全一样。”。

第 3.7.1 节“静态存储持续时间”指出“所有既不具有动态存储持续时间也不是本地对象的对象具有静态存储持续时间。”

第 3.6.2 节“非本地对象的初始化”指出“具有静态存储持续时间的对象应在任何其他初始化发生之前进行零初始化。”

因此,如果您没有将数据成员显式初始化为其他内容,它将保持其零初始化值。

于 2012-12-01T14:53:32.293 回答
1

静态数据成员在初始化方面被视为与全局变量相同。

于 2012-12-01T14:53:36.857 回答