【问题标题】:Why do I get an error "expected expression before ..."?为什么我会收到错误“...之前的预期表达式”?
【发布时间】:2019-01-08 20:46:51
【问题描述】:

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

我的问题:

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 中编译它并得到一个错误:expected expression before "coiso"

为什么会出现这个错误?

【问题讨论】:

  • 你只声明了一个类型Coiso,而不是一个变量。
  • Coiso 是一个类型,而不是一个变量
  • 对不起我的错误。我有 "printf ("Insira a cor do cabelo do coiso\n"); scanf ("%s", Coiso.cor_de_cabelo); printf ("%s\n", Coiso.cor_de_cabelo);
  • 你可能想给cor_de_cabelo一些价值

标签: c struct typedef


【解决方案1】:

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

Coiso var;

scanf ( "%s", var);

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

【讨论】:

  • scanf ( "%s", var);不正确,应该是scanf ( "%s", var.cor_de_cabelo);
  • 奥西里斯,我理解这个想法。这是完美的。现在可以工作了
  • typedef struct X {...}X; struct {...}X; typedef struct {...} X; struct X X; ... 当你学习 C 时,这可能真的很令人困惑。我建议你阅读这篇文章:stackoverflow.com/questions/1675351/…。解释以非常具有教育意义的方式实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多