【问题标题】:what is wrong with my code syntactically?我的代码在语法上有什么问题?
【发布时间】:2021-03-18 09:17:55
【问题描述】:
当我的代码运行时,出现 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;
}