title: int *ptr = (int*)(&a + 1);
body: <pre><code>#include &lt;stdio.h&gt;
  
  int main(void)
  {
     int a[5] = { 1, 2, 3, 4, 5 };
  
     int *ptr = (int*)(&amp;a + 1);  // what happens here ?
  
     printf("%d %d\n", *(a + 1), *(ptr - 1));
  
     return 0;
  }
  </code></pre>
  
  <p>I expected the answer to be 1 but 'm getting 5 ..
  Why ?</p>