title: what is the difference between *p[5] and (*p)[5]?
body: <p>While going through an example of pointers I came across a line which was <code>*p[5]</code> declares <code>p</code> as <em>an array of 5 pointers</em> while <code>(*p)[5]</code> declares <code>p</code> as <em>a pointer to an array of five elements</em>. I didn't understand the difference between them.</p>
  
  <p>Could anyone explain it with an example? </p>