title: Order of operations for pre-increment and post-increment in a function argument?
body: <p>I have some C code:</p>
  
  <pre><code>main()
  {
      int a=1;
      void xyz(int,int);
  
      xyz(++a,a++);     //which Unary Operator is executed first, ++a or a++?
  
      printf("%d",a);
  }
  void xyz(int x,int y)
  {
      printf("\n%d %d",x,y);
  }
  </code></pre>
  
  <p>The function <code>xyz</code> has two parameters passed in, <code>++a</code> and <code>a++</code>.  Can someone explain the sequence of operations to explain the result?</p>
  
  <p>The above code prints "3 13" or "2 23" depending on which compiler is used.</p>