title: Array element values, element addresses, and pointer increment
body: <p>This a very basic concept. But, I get confused generally. Help me.</p>
  
  <p>Case 1: </p>
  
  <p>For the below code:</p>
  
  <pre><code>int oneDArray[] = {1,2,3};
  cout&lt;&lt;&amp;oneDArray&lt;&lt;endl;
  cout&lt;&lt;oneDArray&lt;&lt;endl;
  cout&lt;&lt;&amp;oneDArray+1&lt;&lt;endl;
  cout&lt;&lt;oneDArray+1&lt;&lt;endl;
  </code></pre>
  
  <p>Output is :</p>
  
  <pre><code>0x28fef4
  0x28fef4
  0x28ff00
  0x28fef8
  </code></pre>
  
  <p>Why is there a difference in the incremented values?</p>
  
  <p>Case 2:</p>
  
  <pre><code>  int arr[2][3] = {{1,2,3}, {4,5,6}};
    cout&lt;&lt;&amp;arr&lt;&lt;endl;
    cout&lt;&lt;arr&lt;&lt;endl;
    cout&lt;&lt;*arr&lt;&lt;endl;
  
    cout&lt;&lt;&amp;arr+1&lt;&lt;endl;
    cout&lt;&lt;arr+1&lt;&lt;endl;
    cout&lt;&lt;*arr+1&lt;&lt;endl;
  </code></pre>
  
  <p>Output is:</p>
  
  <pre><code>0x28fee8
  0x28fee8
  0x28fee8
  0x28ff00
  0x28fef4
  0x28feec
  </code></pre>
  
  <p>Why is the output same for arr &amp; *arr? (How it works internally)
  Why is there a difference in the incremented values?</p>