3*3の行列を表すのに
#include<stdio.h>
#define R 3
main()
{
int a1[R][R],i,j;

printf("3*3の行列:\n");
for(i=0;i<R;i++){
for(j=0;j<R;j++){
scanf("%d",&a1[i][j]);
}
}
}

てな感じでforの中にforを入れてるんですがこの仕組みがイマイチ理解できません。
for文単体の仕組みについては理解してるつもりです。
ただforが二重になったとたん頭こんがらがってしまうんです。
どなたかご教授お願いいたします。