Ótimo conteúdo. Cobriu bastante o assunto.
Não sei se já viu esse caso aqui:
x = [0, 1, 4, 6, 19]
y = 0;
x[y++]
Nesse primeiro caso, o x[y++]
retorna 0, pois primeiro ele fez x[y]
e depois ele fez y= y+1
.
Já nesse outro caso:
x = [0, 1, 4, 6, 19]
y = 0;
x[++y]
Agora o retorno de x[y++]
é 1, pois primeiro ele fez y=y+1
e depois, com o resultado de y=1
, ele faz x[y]
.