A pointer stores a memory address instead of a regular value. While int x = 5 stores 5, a pointer stores where some integer lives. This lets you reference data indirectly. Pointers have types.
An int pointer only stores addresses of integers. A double pointer stores addresses of doubles. Type safety prevents treating memory as wrong types. I'll show you how to create and use pointers.
Having variables that point to other variables opens new programming patterns.