title: Complex declaration in C- Programming language
body: <p>I came across a very complex declaration which I could not understand:</p>
  
  <pre><code>char ( * ( * f[3]) ()) [5] ;
  </code></pre>
  
  <p>I want to know how to determine what is being declared.<br/>
  Also, since this question was asked to me in an interview, I want to know whether these kind of codes are actually used in the software industry ?</p>
  
  <p>If not, then what is purpose of asking ?</p>