为什么分号不会清空循环体?

Mat*_*iac 0 c for-loop

for循环结束时的分号假设要清空主体并创建一个空循环.但是,为什么这是打印6.

void main()
{
    int i;
    for(i=1;i<=5;i++);
    {
        printf("%d\n",i);
    }
}
Run Code Online (Sandbox Code Playgroud)

Kri*_*gel 11

循环体是空的,否则将打印1,2,3,4,5.但是循环头仍在运行,并且在每次迭代中它都会增加i.当它到达6哪个不是<=5循环结束.印刷i循环打印后i作为6.增量i是循环的副作用.