I was learning about pointers and multidimensional arrays.
I know that they are comprised of several sub arrays arranged one after the other like this.
int C[ 3 ][ 2 ][ 2 ];
In this example C = 800 This is a pointer to the first array element of the 3 integer array.
So, I assume there is a block of memory reserved to store the reference variable C like this
What I don't understand is how dereferencing work with arrays.
In normal context *C mean get the value stored at the address 800. So *C = 2
But here *C would be 800. I understand this logically. This is a pointer to the 2 integer array inside.
But how does the compiler understand that? Where are the information about the other arrays stored in memory?
source for screenshots - mycodeschool youtube channel