I am unable to find in the C standard docs specifically where it says that multidimensional arrays are contiguous. While it can be inferred from the fact that array elements are contiguous, I want some perspective from the community.
The following code prints out the numbers in the order that I would expect, which is 1 - 9.
#include <stdio.h>
int main()
{
int a[][3] = {{1,2,3},{4,5,6},{7,8,9}};
int* p = (int*)a;
int i;
for (i = 0; i < sizeof(a)/sizeof(int); i++)
printf("%d ",p[i]);
return 0;
}