as title, in C++, is the evaluation order defined for
a[i++] = i;
?
No. You cannot use a single variable more than once in a full expression if at any point it's changed.