c中的循环迭代

sim*_*aur -1 c

#include<stdio.h>
int main()
{
    int i,x=10;
    for(i=0;i<7;i++);
    {
        x++;
    }
    printf("%d",x);
}
Run Code Online (Sandbox Code Playgroud)

产量: 11

无论for循环迭代多少次,x的值都保持为11.为什么呢?

Spi*_*rix 6

从这里删除分号:

for(i=0;i<7;i++);
Run Code Online (Sandbox Code Playgroud)

分号使for循环具有空体.它使它等同于

for(i=0;i<7;i++){}
Run Code Online (Sandbox Code Playgroud)

在编译器中包含警告标志(-Wextra在GCC中)会发出有关这类问题的警告.