A pointer stores the address of another object. & takes an address; * dereferences.
1Points
p + n moves n elements, not n bytes
a[i] is the same as *(a + i)
Subtracting pointers into the same array gives the element distance
*p++ reads *p, then increments p