title: In C Language, What is difference between (name of array) and &(name of array)?
body: <pre><code>int main() {
      int arr[3] = { 1,3,5 };
      int * ptr1 = arr;   
      int * ptr2 = &amp;arr; //  warning C4047: reference level between int * and int (*)[3] is different
      return 0;
  }
  </code></pre>
  
  <p>I know '<code>arr</code>' means pointer that has starting address value of array '<code>arr</code>'. Also, it is a Immutable pointer value. Then, isn't the idea that <code>'&amp;arr</code>' is a address of pointer '<code>arr</code>', right?  </p>