When we specify a point in memory we call it an memory address. As we know variables, objects and arrays are all stored in main memory and the CPU will use a memory address to retreive them. Writing down the exact memory addresses is almost impossible as the memory manager will be the one which allocates the memory. As such coders use a tool known as a pointer.

A pointer is a representation of a memory address. Pointers are very commonly used with arrays and data structures. As far as the course is concerned a pointer is is a numer which will "point" to a position in a array.

In truth a pointer actually points to a position in memory. Some programming languages make you deal with pointers directly (like c++) while some are more subtle about them and use something known as pass by reference (like Java). References are outside the scope of this course.