A two dimensional array is just an abstraction for convenience.
In reality it is just a continuous sequence of bytes in memory. In terms of memory usage there is no difference between a 4x4 two dimensional array of integers and a one dimensional array of 16 integers.
Behind the scenes the runtime libraries are doing the multiplication and addition of the start address, element size, row and column numbers etc. to calculate a specific elements address.