In fact, a[0] is actually the same memory location that a. &a represents the adress where a is stored.
It's different ways to represent the same notation.
Going to the index 3 of the array (a[2]) is the same as doing a + sizeof( typeof(a) ) * 3 where typeof(a) is the type of the variable.