C 语法“分号”

问题描述 投票:0回答:2
  int i;
        for (i = 0; i < 5; i++) {
        printf(" %d \n", i);
        }

输出: 0 1 2 3 4

   int i;
        for (i = 0; i < 5; i++); {
        printf(" %d \n", i);
        }

输出: 5

为什么分号放在 for 循环之后会有如此不同

c syntax
2个回答
0
投票

在第二个代码片段中,for 循环后面有一个分号

;
for (i = 0; i < 5; i++);

  • 分号表示语句结束并导致正文为空。
  • 在每次交互中
    i++
    ,但由于
    ;
    ,身体是空的,所以什么也没有发生。
  • i
    变为
    5
    ,导致循环终止。

0
投票

您应该看到第二个片段:

for (i = 0; i < 5; i++);
printf(" %d \n", i);

运行 empty for 循环,并将

i
留在
5
上,您将在下一行打印它。

© www.soinside.com 2019 - 2024. All rights reserved.