The statementcould be done as (using an extra variable to more clearly show the different steps)Code:bar[i] = foo[i++];
orCode:t = foo[i]; bar[i] = t; i++;
Both are reasonable interpretations. One could of course argue which one is "right" but that is moot. The standard decided to not define one as the correct behavior and left it as undefined behavior.Code:t = foo[i]; i++; bar[i] = t;