结构数组不会初始化

structure array won't initialize

本文关键字:初始化 数组 结构      更新时间:2023-10-16

我正在尝试像这样初始化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}
};
CandyBar candy[3] = {
 {"toe foe", 30.2f, 500},
 {"lays", 2.1f, 10},
 {"fin", 40.5f, 1000}};

你可以这样做。

此样式只能在初始化阶段使用,即在创建变量时使用。以后不能使用它来分配值。(C++11之前)