Array#reverse!に関する質問ですが、喩えば

a = [123, 456, 23]
a.reverse!
p a

が

[23, 456, 123]

を出力するのは何故なのでしょうか?わたくし的には

[456, 123, 23]

かなと思うのですが。気になって夜も寝むれません。教えてください。