[] dereferences (did I spell that right?). That means [] takes pointers to what-they-point-to.

ptr+1 is a pointer.
*(ptr+1) is some type.
ptr[1] is the same as *(ptr+1).

we use -> for pointers and . for regular stuff.