struct Foo
{
char name[10];
int i;
double d;
};
我知道可以使用以下方式将这种POD类型的所有成员初始化为0:
Foo foo = {0};
我可以进一步简化这个问题吗?
Foo foo = {};
想使用类似于原生数组的方式吗? (int arr[10] = {};
)
我不是在问当使用{0}
进行初始化时,除了第一个成员外,其他成员是否也会被初始化为零。 我知道这个问题的答案是肯定的。我想知道的是第一个0
是否可以在语法上省略。
我找到的大多数关于这个主题的教程都建议使用{0}
,没有人使用{}
,例如这个指南,并且解释为这是因为聚合初始化规则是递归的;,这给人们带来了更多的困惑而不是说明。
int n;
就像是默认构造,但不会设置为零。相反,{}
就像是对数据进行值初始化。 - Kerrek SB