It was also handy back in the days when only single array indexes existed and you wanted dual indexes because everything mathematically matched up really handily without taking extra steps. for (i = 0; i < 10; i++)// Not at all like the format of older languages! { for (j = 0; j < 10: j++) { ind= i + j * 10; val[ind] = some value } } Or the other way around, find the two indexes from the current index: for (ind = 0; ind < 100; ind++) { j = ind/10; i = ind - (j * 10); }