C语言结构体赋值,为什么D是错的?

若有以下声明语句:
typedef struct{
int n;
struct {
int y, m, d;
}date;
} PERSON;

则下面定义结构体数组并赋值的语句中错误的是( D )。
A) PERSON x[2]={1,04,10,1,2,04,12,30};
B) PERSON x[2]={{1,04,10,1},{2,04,12,30}};
C) PERSON x[2]={1, {04,10,1}, 2, {04,12,30}};
D) PERSON x[2]={{1}, 04,10,1,{2}, 04, 12, 30};

我做的卷子上答案是D。为什么D是错的?

第1个回答  2019-10-31
括号括起来的必须是结构,要么就不括,而{1}和{2}对应的是int类型,非结构体。本回答被网友采纳
相似回答