Читая некоторые подробности о указателе и массивах в C, я немного смутился. С одной стороны, массив можно рассматривать как тип данных. С другой стороны, массив стремится к немодифицируемому lvalue. Я предполагаю, что компилятор сделает что-то вроде замены идентификатора массива на постоянный адрес и выражение для вычисления позиции, заданной индексом во время выполнения.
myArray[3] -(compiler)-> AE8349F + 3 * sizeof(<type>)
Говоря о том, что массив является типом данных, что это означает? Надеюсь, вы можете помочь мне прояснить мое запутанное понимание того, что такое массив и как он обрабатывается компилятором.