我是C编程的初学者(刚刚开始),我需要你的帮助才能理解这个非常简单的代码的输出:
int main()
{
int x=1;
for (;x<=10;x++);
printf("%d\n",x);
return 0;
}
输出是: 11
如果x值是&lt; = 11,则相同的输出 如果x值为12或更大,则打印精确的x值(例如:如果int x = 12;输出为12)。
计算机是如何理解这段代码的?
答案 0 :(得分:3)
所以,
int main()
{
int x=1; // line 1
for (;x<=10;x++); // line 2
printf("%d\n",x); // line 3
return 0; // line 4
}
第1行将x初始化为1。
第2行保持x增加1直到达到11.第一个分号表示“在开始循环之前不做任何事情”,x<=10
表示继续直到x> 10(所以当x = 11时)和x ++意味着每次将x增加1。如果x> = 11,则基本上跳过此行,因为x已经大于10。
第3行将x打印到命令行(在这种情况下,如果x开始小于11,则x = 11,或者如果由于前一行而x开始于&gt; = 11,则为x)
第4行表示程序成功,退出程序。
答案 1 :(得分:0)
是:
for(*init-expr*; *test-expr*; *update-expr*)
*body-statement*
或者更确切地说,它可以这样描述:
*init-expr*;
while(*test-expr*){
*body-statement*
*update-expr*;
}
并且, for 语句后跟一个分号,其中 body-statement 是。所以,它是一个“空语句”,只是循环并更新 x < / em>,完成循环后,只需在循环后打印 x ,因此输出为11.