Actually,
you can do odd things with arrays in C / C++. Supose you have int * array and have allocated memory for it (the same as int array[<slots>])
Then, you can index it the normal way:
array[index]
... or the odd way:
index[array] //(try it, it works!)
This, because array[index] is translated by the compilator to *(array + index), which is the same, obviously, as *(index + array) = index[array]