尝试过C ++标准,但无法弄明白。这些是等价的吗?
double x[2] = {0.0, 0.0};
和
double x[2] = {};
这些怎么样?
struct A {
double x[2];
};
A a = {0.0, 0.0};
和
A a = {};
谢谢!
答案 0 :(得分:4)
C ++标准说(8.5.1):
如果初始化程序较少 列表中的成员比 聚合,然后每个成员不 明确初始化应为 值初始化
和double的值初始化是将其设置为0.0
。
是的!在C ++中它们是等价的。
[我没时间检查C99标准。]
答案 1 :(得分:3)
是的,他们是。
当每个声明的大小不足时,编译器用零填充初始化。