理解C中的简单循环代码

时间:2016-11-01 03:46:55

标签: c for-loop

我是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)。

计算机是如何理解这段代码的?

2 个答案:

答案 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.