title: How does "Pointer to Function" Syntax Work in C?
body: <p>How (*ptr_fun1)(10) and ptr_fun1(10) are same in the below code </p>
  
  <p><strong>Code:</strong></p>
  
  <pre><code>#include&lt;stdio.h&gt;
  void fun1(int a)
  {
       printf("It is %d\n",a);
  }
  int main()
  {
    void (*ptr_fun1)(int);
    ptr_fun1 = fun1;
  /*
     ex-
          ptr_fun1    fun1    
          +----+      +-----+
          +1000+      +code +
          +----+      +-----+
           1234        1000
          fun1(10); &lt;=&gt; ptr_fun1(10); //how
  */
    printf("%d\n%d",ptr_fun1(10),(*ptr_fun1)(20));
    return 0;
  }
  </code></pre>
  
  <p><strong>output</strong></p>
  
  <pre><code>10
  20
  
  </code></pre>
  
  <p>Can some one please explain how it works.</p>