ループの順序が2D配列を反復するときにパフォーマンスに影響するのはなぜですか?
以下は、iとj変数を入れ替えた以外はほぼ同じ2つのプログラムです。どちらも異なる時間で実行されます。なぜこれが起こるのか誰かが説明できますか? バージョン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; …