This document discusses C arrays and how they work. Some key points: - Arrays in C are really pointers, so array names refer to memory locations rather than variables. Array elements can be accessed and modified using pointer arithmetic. - Multidimensional arrays lay out elements sequentially in memory in row-major order. Subscripting a multidimensional array uses pointer arithmetic based on the element sizes. - When arrays are passed to functions, only the pointer is passed by value, not the elements. So functions can modify the caller's array elements through the pointer. The storage order of multidimensional arrays matters for this behavior.