title: Pointers to 2D arrays C, C++
body: <p>I'm learning about pointers:</p>
  
  <pre><code>int x[10]; 
  int *p = &amp;x
  </code></pre>
  
  <p>this would make a pointer type <code>int</code> to the first element. So, if I had 2D array, I need to use double pointer: first pointer would point to the second dimension of the array. This means :</p>
  
  <pre><code>int x[3][4] = {{1,2,3,4},{5,6,7,8},{9,9,9,9}};
  </code></pre>
  
  <p>and when I want to point to it I must declare the size of the second dimension like this, right ?</p>
  
  <pre><code>int *p[4] = x;
  </code></pre>
  
  <p>or there is another way by typing : <code>int **p</code>; ? </p>
  
  <p>and <code>int *p[4]</code> is array of integer pointers which takes <code>4 * (sizeof(int*))</code>, right?</p>