Não estou entendendo a parte do código em que
x[x[1]]=-5;
Não entendo como esse código significa, debugando fica claro que -5 é adicionado na posição 3. E fazendo outras simulações com esse tipo de construção por ex: x[x[x[1]]], ou seja adicionando mais um x , sinifica que é a posição 24 de um array. Agradeceria muito se alguém pudesse explicar. Complementaria a explicação que o colega deu em 2016, mas que foi muito importante.