title: Precedence between multiple different operators Order of evaluation
body: <p>I have some problems with how an expression Order of evaluation is executed.</p>
  <pre><code>    int x = 1;
      int y = 2;
  
      int z = ++x || y++; // how this expression actually executed?
  
      cout &lt;&lt; x &lt;&lt; &quot; &quot; &lt;&lt; y &lt;&lt; &quot; &quot; &lt;&lt; z;
  </code></pre>
  <p><strong>output</strong>: 2 2 1</p>
  <p>I know if started from left to right with <code>++x</code> it was evaluated and a short circuit will be done.</p>
  <p>But why we didn't evaluate from <code>y++</code> which has higher precedence than any other operator here and then do <code>++x</code> which has less precedence and finally do <code>||</code> between them?</p>