我正在尝试像这样初始化糖果成员。
#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;
}
但它在开括号附近给出了语法错误 我知道这是错的,但有一种方法可以初始化一个struct数组。 有人可以解释为什么上面的代码是错误的。
答案 0 :(得分:2)
CandyBar candy[3] = {
{"toe foe", 30.2f, 500},
{"lays", 2.1f, 10},
{"fin", 40.5f, 1000}};
你可以这样做。
此样式只能在初始化阶段使用,即在创建变量时使用。它不能用于以后分配值。 (前C ++ 11)
答案 1 :(得分:2)
你没有初始化数组,你正在为其元素进行赋值。如果你做使用初始化程序,它将正常工作:
CandyBar candy[3] = {
{"toe foe", 30.2f, 500},
{"lays", 2.1f, 10},
{"fin", 40.5f, 1000}
};