我是C的新手,我想知道是否允许这样做,如果是这样,我该如何正确地做到这一点?
这段代码给了我很多编译器错误。我正在尝试创建一个包含3个字符数组的结构(初始化为空字符'\0'
)并初始化其中一个名为S
的结构。
struct Structure{
char array1[3] = { '\0' };
char array2[30]= { '\0' };
char array3[30]= { '\0' };
} S;
答案 0 :(得分:3)
没有。这是不允许的。
C中的类型(您的struct Structure
是一种类型)没有任何价值。什么是值是对象。
您可以创建一个strutsure类型的对象,并在需要时递归地将其全部初始化为0,并将其称为通用零初始化器。
struct Structure {
char array1[3];
char array2[30];
char array3[30];
} S = {0};
答案 1 :(得分:2)
没有
有两件事:
struct
的结构 - 它的构成部分。您的代码仅声明布局,而不创建实际实例。所以它无法初始化。
答案 2 :(得分:1)
你不能初始化struct的元素中的值。
正确的初始化就像这样 -
struct Structure s = {0};
正确的声明是
struct Structure{
char array1[3] ;
char array2[30];
char array3[30];
} S;