我无法理解如何在数组结构中初始化char数组。我写了这段代码:

typedef struct tomo
{
    char titolo[100];
    char autore[100];
    int anno_pubblicazione;
    float prezzo;
} t_libro;

main(){
    t_libro biblio[2];
    biblio[0] = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
    biblio[1] = {"Harry Potter e la Pietra Filosofale", "J.K.Rowling", 2003, 12.5};
}

但是当我编译时,它告诉我在'{'之前需要一个表达式。
我怎么解决?这些字符数组给了我很多问题。。。
附笔。
我也试着用
biblio[0].titolo = "Guida al C";

以这种方式对于struct的其他字段,也以这种方式,我有一个错误。

最佳答案

biblio[0] = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};

这不是初始化。这是一个简单的任务。只能在初始化中使用初始化语法。看起来是这样的:
t_libro biblio[] = {
  {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2},
  {"Harry Potter e la Pietra Filosofale", "J.K.Rowling", 2003, 12.5}
};

你的写作尝试
biblio[0].titolo = "Guida al C";

失败,因为无法分配给字符数组。必须对它们进行初始化,或者使用类似于strcpy的函数。
你的声明也错了。应该是
int main(void)

09-05 13:41