结构或类中的数组初始化

时间:2015-07-09 06:46:39

标签: 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]; 

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

3 个答案:

答案 0 :(得分:3)

我猜在C中你可以这样做:

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

char arr[5];
};  

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

答案 1 :(得分:1)

在C中,您无法在结构定义中初始化结构的成员。当您声明该结构的变量时,您必须这样做。在C ++中,您可以将其作为构造函数的一部分。

答案 2 :(得分:0)

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

struct student{
int age;
string name;
int scoreOf4subject[4];   
}; 

当您需要在数组中设置4个主题值时,它将类似于:

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