title: C++ Pointer within parentheses
body: <p>I am a bit confused about this syntax. </p>
  
  <pre><code>void function ( float (*points)[2]); 
  </code></pre>
  
  <p>Is this declaring an array of float pointers? If so, why the following code returns an error:</p>
  
  <pre><code>void foo( float (*points)[2]) {}
  
  float *p[2];
  foo(p); // error
  
  float (*p)[2];
  foo(p); // okay
  </code></pre>
  
  <p>Why do you need the parentheses? </p>