我正在尝试像这样初始化Candy的成员。

#include <iostream>
#include <string>

struct CandyBar
{
std::string Brand;
float weight;
int cal;
};

int main()
{
CandyBar candy[3];
candy[0] = {"toe foe", 30.2f, 500};
candy[1] = {"lays", 2.1f, 10};
candy[2] = {"fin", 40.5f, 1000};
return 0;
}

但这给我在开括号附近的语法错误
我知道这是错误的,但是有没有办法像这样初始化一个结构体数组。
有人可以解释为什么上面的代码是错误的。

最佳答案

您不是在初始化数组,而是对其数组进行赋值。如果您确实使用了初始化程序,它将可以正常工作:

CandyBar candy[3] = {
    {"toe foe", 30.2f, 500},
    {"lays", 2.1f, 10},
    {"fin", 40.5f, 1000}
};

10-06 14:41