What is a pointer to an array of x amount of ints?
<p>I've been working through <em>C++ Primer</em>, and I feel as if something hasn't been explained clearly...</p>

<p>I understand what it means to have a array of pointers to <code>int</code>s, for example:</p>

<pre><code>int *foo [4];
</code></pre>

<p>or </p>

<pre><code>int *foo1 [2][4];
</code></pre>

<p>However, I don't understand what it means to have a pointer to an <em>array</em> of some number of <code>int</code>s. Here's an example from the book:</p>

<pre><code>int ia[3][4];
int (*p) [4] = ia;
</code></pre>

<p>What is <code>p</code> here, and what does this mean, both in the 1D and the 2D case?</p>