Забыл я С++ за год :( Но что-то мне подсказывает, что приведенный вами код работает аналогично сдвигу.
Посидел подумал. Объяснить могу пока так (с условием того, что все напрочь позабыл). Самое главное тут понять, что массив лежит на стеке, у него там НЕ косвенная адресация, то есть &a и a равны. Но при этом сам массив считается элементом. То есть (&a)[N] != a[N], то есть если мы объявили int a[X], то (&a)[N] даст нам адрес элемента памяти, который идет за N-ым повторением массива длинной X, а a[N], даст элемент в памяти по адресу a+N.