C++ 结构或类中的数组初始化

C++ 结构或类中的数组初始化,c++,c,arrays,struct,C++,C,Arrays,Struct,我只是在学习结构和课程。为了熟悉它,我创建了一个示例结构,并尝试在其中初始化一个数组。当我编译程序时,它给了我一个错误 error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token char arr[5] = {2,3,8,67,87}; struct abc{ char a; char b; char c; char arr[5] = {2,3,8,67,87}; }; struct abc xyz[5]

我只是在学习结构和课程。为了熟悉它,我创建了一个示例结构,并尝试在其中初始化一个数组。当我编译程序时,它给了我一个错误

error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
char arr[5] = {2,3,8,67,87};

struct abc{
char a;
char b;
char c;

char arr[5] = {2,3,8,67,87};
};  

struct abc xyz[5]; 

在结构和类的声明中不允许数组初始化吗?

我想在C中可以这样做:

struct abc{
char a;
char b;
char c;

char arr[5];
};  

struct abc test= { 5, 2, 3, { 'a', 'b', 'c', 'd', 'e' } };

在C语言中,不能在结构定义中初始化结构的成员。当您声明该结构的变量时,必须这样做。在C++中,可以作为构造函数的一部分来完成。

在结构中不允许完成数组初始化,但是您可以只初始化没有内容的数组的名称和类型。 在c中++

当需要在数组中设置4个主题值时,如下所示:

student keny;   
keny.scoreOf4subject={90,91,94,93};

我相信 C++ >代码>和 C++< /Cord>两个都有不同的规则……选择一个。即使你选择C++,也可以从它的答案上提这个版本。我只想知道,它是否可能。C++的任何版本都允许这样做。选择一种语言。是的,C++允许它自从C++ 11OK以来,因为你坚持用一种语言来标记(不等待一个在两者都有效的答案),所以C++代码中的代码工作得很好,因为C++ 11。请参阅。这是c99中声明的样式。使用它明智吗?我认为我们不能在结构声明期间初始化成员,而不是定义,结构定义意味着为其分配空间并为其成员提供一些值。@可以在结构定义中指定成员的Subhajit值,以便在实例化结构时(在C++中)成员获取这些值@ JuangopangZa,是的,我认为C++是可能的,但定义和实例化是相同的,我想你是指结构。declaration@Subhajit我指的是结构类型的定义——它的身体。在C++中,你可以精确地做OP正在做的事情。看见
student keny;   
keny.scoreOf4subject={90,91,94,93};