title: Why does a=(b++) have the same behavior as a=b++?
body: <p>I am writing a small test app in C with GCC 4.8.4 pre-installed on my Ubuntu 14.04. And I got confused for the fact that the expression <code>a=(b++);</code> behaves in the same way as <code>a=b++;</code> does. The following simple code is used:</p>
  
  <pre><code>#include &lt;stdint.h&gt;
  #include &lt;stdio.h&gt;
  
  int main(int argc, char* argv[]){
      uint8_t a1, a2, b1=10, b2=10;
      a1=(b1++);
      a2=b2++;
  
      printf("a1=%u, a2=%u, b1=%u, b2=%u.\n", a1, a2, b1, b2);
  
  }
  </code></pre>
  
  <p>The result after gcc compilation is <code>a1=a2=10</code>, while <code>b1=b2=11</code>. However, I expected the parentheses to have <code>b1</code> incremented before its value is assigned to <code>a1</code>. </p>
  
  <p>Namely, <code>a1</code> should be <code>11</code> while <code>a2</code> equals <code>10</code>.</p>
  
  <p>Does anyone get an idea about this issue?</p>