运行结果是什么,得出这个结果的理由是什么,求教导

#include<stdio.h>
Int main()
{int m = 1,n,i;
for(i=0;i<5;i++)
{int m=1;
m++;
if (i == 4)n=m;
}
printf(“%d,%d”,m,n);
return 0;
}

结果是1,2
解释如下图所示:

img

1,2

#include<stdio.h>
Int main()
{int m = 1,n,i;//将其看作是外部m
for(i=0;i<5;i++)
{int m=1;//每次循环到这m都为1,此时内部m会屏蔽外部的m
m++;//到这m=2
if (i == 4)n=m; //n=m=2
}
printf(“%d,%d”,m,n);//m=1 n=2
return 0;
}