It is similar to a pointer in the way it is used to gain access to a value, and in the way it can be changed to point to the next element. It is different in that it is not actually referring to a memory address, and successive values need not be in adjacent memory locations.