我正在研究结构和课程。我创建了一个用于熟悉它的示例结构,并尝试初始化其中的数组。当我编译程序时,它给了我错误
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];
结构和类的声明中是否不允许数组初始化?
答案 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};