Mea*_*ead -2 c expression for-loop
为什么第一个程序不起作用,但第二个程序不起作用?我的意思是,第二个程序给出了错误
"'之前的预期表达';'"
但是为什么然后它不会给"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++;
}
}
Run Code Online (Sandbox Code Playgroud)
hac*_*cks 12
for(i=1;i<=10;;)
不是有效的C语法.for
C中的循环语法是
for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement
Run Code Online (Sandbox Code Playgroud)
请注意,即使我们省略了一些表达式,也必须始终存在两个分号.