title: Why isn't "k" incremented in the statement "m = ++i && ++j || ++k" when "++i&&++j" evaluates to true?
body: <p>Aren't the individual expressions in a composite logical <strong>AND/OR</strong>  expression supposed to be evaluated first before the logical operators are applied to their result?Why is <code>++k</code> untouched in the condition <code>m = ++i &amp;&amp; ++j || ++k</code> for the following program :</p>
  
  <pre><code> #include&lt;stdio.h&gt;
  
   int main()
   {
        int i=-3, j=2, k=0, m;
      m = ++i &amp;&amp; ++j || ++k;
      printf("%d, %d, %d, %d\n", i, j, k, m);
      return 0;
  }
  </code></pre>
  
  <p><strong>Output :</strong>  -2,3,0,1</p>
  
  <p>But I expect the output <code>-2,3,1,1</code></p>