因为;位置不同 导致2个代码结果不一样 这是哪方面的知识不太懂


#include <stdio.h>

int main()
{
    int m[][3] = { 1,2,3,4,5,6,7,8,9 };
    int i, j = 2;
    for (i = 0; i < 3; i++)
    printf("%d", m[j][i]);
    return 0;
}


{
    int m[][3] = { 1,2,3,4,5,6,7,8,9 };
    int i, j = 2;
    for (i = 0; i < 3; i++);
    printf("%d", m[j][i]);
    return 0;
}

你在for循环后面加分号只会使得i的值增加,当i = 3时就退出循环,再执行输出m[j][i] = m[2][3]越界了,自然结果不同,一般初学者喜欢犯这种错误

这个可能是编译器的问题,不是我们的问题。