title: Why output of *(arr + k) != *(&arr + k) although both refereed to same address
body: <p>I am trying t print the content of array. Please find the code.</p>
  
  <pre><code>int main(){
      int k = 2;
      int arr[5] = {8,7,5,11,2};
      printf("arr   %p\n", arr);
      printf("&amp;arr  %p\n", &amp;arr);
      printf("*(arr + k)    %p\n", *(arr + k));
      printf("*(&amp;arr + k)   %p\n", *(&amp;arr+k));
  }
  </code></pre>
  
  <p>I'm getting below output for above program where arr + k and &amp;arr + k must be same.</p>
  
  <pre><code>arr   0x7ffe4e76ab60
  &amp;arr  0x7ffe4e76ab60
  *(arr + k)    0x5
  *(&amp;arr + k)   0x7ffe4e76ab88
  </code></pre>