title: array of function pointer returning output before incrementing the value in the function
body: <pre><code>#include&lt;stdio.h&gt;
  int show();
  int showadd(int);
  int(*arr[3])();
  int (*(*ptr)[3])();
  
  int main(){
      int result;
      arr[0]= show;
      arr[1]=showadd;
      ptr = &amp;arr;
      result = (**ptr)();
      printf(&quot;printing the value returned by show : %d&quot;,result);
      (*(*ptr +1))(result);
  
  }
  int show()
  {
      int a = 65;
      return a++;
  }
  int showadd(int b)
  {
      printf(&quot;\nAdding 90 to the value returned by show: %d&quot;, b+90);
  }
  </code></pre>
  <p>when i printed the result which is pointing to int show() which has a++ the answer printing is 65 instead of 66. what is causing this behavior.</p>