gpt4 book ai didi

c - 为什么 "for(;i<=10;i++)"有效但 "for(i=0;i<=10;;)"无效?

转载 作者:行者123 更新时间:2023-11-30 19:53:09 25 4
gpt4 key购买 nike

为什么下面的第一个程序可以运行,而第二个程序却不能?我的意思是,第二个程序给出了一个错误

"expected expression before ';'"

但是为什么它没有给出与 "for(;i<=10;i++)" 相同的结果,因为第一个表达式也丢失了?第二个程序的"for(i=0;i<=10;;)"中的";;"不是表示一个空白表达式吗?最后,为什么 "for(i=0;i<=10;)" 在删除第二个分号后起作用?

//Program 1
#include<stdio.h>

int main()
{
int i=1;
for(;i<=10;i++)
{
printf("%d\n",i);
}
}

//Program 2
#include<stdio.h>

int main()
{
int i;
//for(i=1;i<=10;) // This works but following doesn't
for(i=1;i<=10;;)
{
printf("%d\n",i);
i++;
}
}

最佳答案

for(i=1;i<=10;;)不是有效的 C 语法。 for C 中的循环语法是

for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement

请注意,必须始终存在两个分号,即使我们省略了某些表达式。

关于c - 为什么 "for(;i<=10;i++)"有效但 "for(i=0;i<=10;;)"无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com