嵌套for循环,在循环外部进行初始化

Kin*_*Jnr 0 c nested-loops

#include <stdio.h>

int main()
{
    int i = 1, j = 1;

    for(i; i<=5; i++)
    {
        for(j; j<=5; j++)
        {
            printf("%d - %d\n",i, j);
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码只运行一次外部for循环.输出是:

1 - 1
1 - 2
1 - 3
1 - 4
1 - 5
Run Code Online (Sandbox Code Playgroud)

但是当我进行以下更改时,printfs会打印预期的25次.

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

有人可以解释一下这种行为吗?

use*_*738 7

i(当i=2)的第二次迭代中,简单值为j6,因此第二次(嵌套的)for永远不会运行.但是在每次迭代的第二种情况下i,j被初始化为1.