在2D数组上进行迭代时,为什么循环顺序会影响性能?
下面是两个几乎完全相同的程序,除了我切换了i和j变量。它们都以不同的时间运行。有人可以解释为什么会这样吗? 版本1 #include <stdio.h> #include <stdlib.h> main () { int i,j; static int x[4000][4000]; for (i = 0; i < 4000; i++) { for (j = 0; j < 4000; j++) { x[j][i] = i + j; } } } 版本2 #include <stdio.h> #include <stdlib.h> main () { int i,j; …