As a complement, I took time to prepare a sample programms of how I handle multi-dimensionnal array in my everyday code. It compares it to a classic pointer access.
I'll be glad to discuss results of such methods on different platform and discuss pros and cons of this method.

On most platform, whener the data fits in the cache, both methods ends up in a few tenth of percent of margin. For larger array, the difference grows but it can be diminished by using loop tiling or loop blocking. Moreover the natural [][] syntax eases the way you can write complex element acces patterns.