【问题标题】:what is wrong with my code syntactically?我的代码在语法上有什么问题?
【发布时间】:2021-03-18 09:17:55
【问题描述】:

当我的代码运行时,出现 3 个错误:

  1. “返回前的预期表达式”
  2. “} 之前的预期表达式”
  3. “应为 ',' 或 ';'在 ')' 之前 for(Node *node=q->head)
int queue_length(queue_t* q){
    if(q==NULL) {
        return -1;
    }
    int size = 0;
    for(Node *node=q->head)
  {
        size++;
    }
    return size;
 
}

【问题讨论】:

标签: c loops debugging syntax compilation


【解决方案1】:

您的 for 循环不正确。理想情况下,您需要类似于以下内容:

for (intcountingVar = 0;countingVar

也许您的目标是计算队列中元素的数量。如果是这样,也许你想要类似下面的东西,这是一个延伸,因为我不知道你的 queue_t 结构是什么样的:

while (NULL != q->head) { ... }

【讨论】:

    【解决方案2】:
    for(Node *node=q->head)
      {
            size++;
        }
    

    这个循环在语法上是错误的。 For 循环的 Google 语法。应该是 for(initialization;condition;increment/decrement){ //body } 我可以看到您来自更高级别的语言。 C 没有诸如 foreach 或 for..in.. 之类的东西。对于您的情况,您应该在一段时间内这样做,例如

    while(q!=NULL)
    {
        size++;
        q=q->next;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      相关资源
      最近更新 更多