title: The array data type in C
body: <p>By reading some details about pointers and arrays in C I got a little confused.
  On the one hand, the array can be seen as a data type. On the other hand, the array tends to be an unmodifiable lvalue. I imagine that the compiler will do something like replacing the array's identifier with a constant address and an expression for calculating the position given by the index at runtime.</p>
  
  <pre><code>myArray[3] -(compiler)-&gt; AE8349F + 3 * sizeof(&lt;type&gt;)
  </code></pre>
  
  <p>When saying that an array is a data type, what does this exactly mean?
  I hope you can help me to clarify my confused understanding of what an array really is and how it is treated by the compiler. </p>