title: Why does C support negative array indices?
body: <p>From <a href="https://stackoverflow.com/questions/3473675/negative-array-indexes-in-c">this</a> post in SO, it is clear that C supports negative indices.</p>
  <ol>
  <li><p>Why support such a potential memory violation in a program?</p>
  </li>
  <li><p>Shouldn't the compiler throw a Negative Index warning at least? (am using GCC)</p>
  </li>
  <li><p>Or is this calculation done in runtime?</p>
  </li>
  </ol>
  <blockquote>
  <p><strong>EDIT 1:</strong>   Can anybody hint at its uses?</p>
  <p><strong>EDIT 2:</strong>   for 3.) Using counters of loops in <code>[]</code> of arrays/pointers indicates Run-time Calculation of Indices.</p>
  </blockquote>