关于二维数组的一个问题,我打在双斜杠后边了

#include <stdio.h>

int main()
{
        int a[4][5] = {
                {1, 2, 3, 4, 5},
                {6, 7, 8, 9, 10},
                {11, 12, 13, 14, 15},
                {16, 17, 18, 19, 20}};

        int i, j;

        for (i = 0; i < 4; i++)
        {
                for (j = 0; j < 5; j++)
                {
                        printf("%2d ", a[i][j]);
                        if (i + j == 3)//请问怎么理解这一步做的处理呢
                        {
                                printf("\n");
                        }
                }
        }
  

        return 0;
}

这样看貌似就有点理解了,有点强行理解的感觉。
上次i剩下的加上i+1后面的刚好凑一行。

但是没必要理解这个,没意思,直接去掉,在j的外层加个换行就够了啊

img

第一行是0+3,输出1234,第二行就变成了i为1,j为2,再加上之前的五,就是5,6,7,8,第三行是i=2,j=1,加上之前的9,10,输出9,10,11,12,巧妙地实现了四个一行