title: What does this declaration means "int(*ptr[3])();"?
body: <p>Whole code :  </p>
  
  <pre><code>#include&lt;stdio.h&gt;    
   aaa(){ 
      printf("hi");  
   }  
   bbb(){  
      printf("hello");  
   }  
   ccc(){ 
      printf("ccc");  
   }  
  int main(){  
       int(*ptr[3])(); 
       ptr[0]=aaa;  
       ptr[1]=bbb;  
       ptr[3]=ccc;   
       ptr[3]();   
  }   
  </code></pre>
  
  <p>Output will be "bye".<br>
  What i can see from seeing the code that <code>int(*ptr[3])()</code> is some kind of declaration of array that is related to int, it is also look like function call.
  In lower lines of code name of functions are assigned to array, and piece of array can be used for function calling.
  Can somebody explain, what declaration is and how function calling is proceeding ?</p>