title: why *foo ++= *++foo may be undefined?
body: <p>it should set the current character to next character. For example: </p>
  
  <pre><code>while( *foo ) { 
   if(baa(*foo)) *foo++ = *++foo;
    foo++;
  }
  </code></pre>
  
  <p>But I get the following errors:</p>
  
  <pre><code>error: operation on ‘foo’ may be undefined [-Werror=sequence-point]
  cc1: all warnings being treated as errors
  </code></pre>
  
  <p>Can anyone explain why that? that isn't valid C syntax?</p>