为什么会出现错误“expected expression before…”?

为什么会出现错误“expected expression before…”?,c,struct,typedef,C,Struct,Typedef,我是新的编码,我是葡萄牙人,所以我的英语不是很好 我的问题: int main() { typedef struct Coiso{ char cor_cabelo[100]; int idade; float altura; }Coiso; printf ( "Insira a cor do cabelo do coiso\n"); scanf ( "%s", Coiso); printf ( "%s

我是新的编码,我是葡萄牙人,所以我的英语不是很好

我的问题:

int main()
{
    typedef struct Coiso{
        char cor_cabelo[100];
        int idade;
        float altura;

    }Coiso;


    printf ( "Insira a cor do cabelo do coiso\n");
    scanf ( "%s", Coiso);

    printf ( "%s\n", Coiso.cor_de_cabelo);

return 0;
}
所以,我在geany中编译了这个,得到了一个错误:coiso之前的预期表达式


为什么会出现此错误?

正如其他人所说,Coiso只是一种自定义类型,如int或bool。 您必须用它声明一个变量。所以要编辑你的代码

Coiso var;

scanf ( "%s", var);

printf ( "%s\n", var.cor_de_cabelo);

你只声明了一个类型Coiso,不是一个变量。Coiso是一个类型,不是一个变量对不起,我错了。我已经打印了一份cor do cabelo do coiso\n;扫描%s,Coiso.cor_de__cabelo;printf%s\n,Coiso.cor_de_cabelo;您可能希望为cor_de_cabeloscanf%s,var;不正确,应为scanf%s,var.cor_de_cabelo;奥西里斯,我理解这个想法。太完美了。现在是worktypedef结构X{…}X;结构{…}X;typedef结构{…}X;结构X。。。当你学习C语言时,这可能会让你感到困惑。我建议你阅读以下文章:。这些解释是以一种非常教条的方式实现的。