Looks right to me. In the first version `a = a + 1` makes `a` refer to a *new* array with values one greater and `push!(astore,a)` stores the reference to the new array in `astore`.
In the second version you modify the values of the array already referred to by `a` and then push a reference to that array, but every time you push it is a reference to the same array, so in the end all you have is lots of references to the same array.
