title: Incrementing arrays in C,SPECIAL CASE
body: <p>I am confused by the following code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      int a[] = {5, 15, 1, 20, 25};
      int i, j, m;
  
      i = ++a[1];   /*statement 1*/
      j = a[1]++;   /*statement 2*/
      m = a[i++];   /*statement 3*/
  
      printf("\n%d\n%d\n%d\n", i, j, m);
  
      return 0;
  }
  </code></pre>
  
  <p>Statements 1, 2, 3 are a bit confusing for me; I don't not get the way these are producing the output for me. Can anyone shed some light on this please?</p>