Стандарт языка Си, пункт 6.5.16 Assignment operators, параграф 4
The order of evaluation of the operands is unspecified.
Результат зависит от компилятора. Если сначала вычисляется правый операнд ( i++ + ++i ), то результат равен 7, если сначала вычисляется левый операнд, то результат 5.
Здесь порядок вычисления роли не играет. Будет undefined behavior. Как минимум двукратная модификация скалярного объекта между соседними точками следования(в одном выражении).
5/4 "Between the previous and next sequence point a scalar object shall have its stored value modified at most once by the evaluation of an expression. Furthermore, the prior value shall be accessed only to determine the value to be stored. The requirements of this paragraph shall be met for each allowable ordering of the subexpressions of a full expression; otherwise the behavior is undefined."