Это помогает, потому что выполнение двумерного индекса выполняет неявное умножение и сложение КАЖДОЕ ВРЕМЯ, которое вы делаете [j][k]
.Во втором вы выполняете только арифметику ONCE (для каждой итерации цикла) и сохраняете то, что по существу [j][k]
в t2
, и просто повторно используете t2
вместо неявного выполнения [j][k]
арифметики три раза в исходном коде.
Конечно, компиляторы, как правило, достаточно умны, чтобы знать лучше, но я предположил, что вы просто просили теорию.