If an array of unknown size is initialized, its size is determined by the largest indexed element with an explicit initializer. The array type is completed at the end of its initializer list.
it also states in section 6.7.7 (“type names”) that
If the pointer operand points to an element of an array object, and the array is large enough, the result points to an element offset from
the original element such that the difference of the subscripts of the resulting and original array elements equals the integer expression.
note also that your example is the only occurrence of the word “index” in the entire document that isn’t just referring to the actual index at the end.
§6.7.9 of the C11 standard says they have elements with indices:
it also states in section 6.7.7 (“type names”) that
note also that your example is the only occurrence of the word “index” in the entire document that isn’t just referring to the actual index at the end.