Wings-of-Glory, du hast übersehen, dass sein Array mit 0 anfängt, d.h. a[9] = 9.
Hab den Code auf das Nötigste reduziert und in Java ausprobiert. Ergebnis:
Wenn eine Variable sich selbst zugewiesen wird, findet das Postinkrement gar nicht statt:
int c = 0;
c += c++;
System.out.println(c); //Ausgabe: 0
Hier wird das Postinkrement ausgeführt, weil die Variable, die inkrementiert wird, einer anderen Variable zugewiesen wird:
int c = 0;
int b = 0;
b += c++;
System.out.println(b); //Ausgabe: 0
System.out.println(c); //Ausgabe: 1