三维数组 嵌套for循环 i,j,k次序有关问题
三维数组 嵌套for循环 i,j,k次序问题
int a[60][250][1000],i,j,k;
for(k=0;k<=1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
这样是错误的,需要把循环语句i,j,k内外换一下
为什么??????????
------解决方案--------------------
这么看吧,a[60][250][1000], 60是最外层, 1000是最里层。 循环的时候根据这个判断哪个在最里面,因为在最里面的是变化最频繁的,也就是1000那层。
------解决方案--------------------
------解决方案--------------------
要说错误,只看出一个:
for(k=0;k<=1000;k++)
应该改成
for(k=0;k<1000;k++)
哪个在内层,只是影响效率;反正都是赋0,初始化先后顺序没有什么关系。
要高效就直接memset();
int a[60][250][1000],i,j,k;
for(k=0;k<=1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
这样是错误的,需要把循环语句i,j,k内外换一下
为什么??????????
------解决方案--------------------
这么看吧,a[60][250][1000], 60是最外层, 1000是最里层。 循环的时候根据这个判断哪个在最里面,因为在最里面的是变化最频繁的,也就是1000那层。
------解决方案--------------------
------解决方案--------------------
要说错误,只看出一个:
for(k=0;k<=1000;k++)
应该改成
for(k=0;k<1000;k++)
哪个在内层,只是影响效率;反正都是赋0,初始化先后顺序没有什么关系。
要高效就直接memset();