C only defines arrays and allows elements of an array to be, in turn, arrays also. For an array of arrays, the first index selects an array element and the second index selects a value element in that array. To have their meaning reversed would create an illogical grammar.
Interpreting the first index as the row number and the second index as the column number to some 2D matrix data structure is just that, an interpretation.
Note that Fortran's (column-major) arrays aren't indexed by applying two individual index operators.
EDIT: To give an authoritative quote, the C standard says, in §6.5.2.1 (C99), after explaining how the result of subscripting a multidimensional array is an n-1-dimensional array
It follows from this that arrays are stored in row-major order
(emphasis mine)