在C++中如果我以"= {}"的形式初始化结构,如下例所示,它是否确保为结构的所有成员赋值为零?我理解这似乎是重复的问题,但我的问题是,如果它对所有成员初始化为零,它是否也适用于复杂的结构?像结构中的结构一样,或者为此,每个成员必须在代码中明确赋值为零?
typedef struct s{
int i;
bool x;
};
int main ()
{
s initial = {};
printf("%d %d", initial.i, initial.x);
}
Run Code Online (Sandbox Code Playgroud)
编辑:参考复杂的结构,
typedef struct scomplex{
s initial;
s t[5];
};
int main (void)
{
scomplex sc = {};
printf ("%d %d %d",sc.initial.i, sc.initial.x, sc.t[0].i);
}
Run Code Online (Sandbox Code Playgroud)