Introduction
Pointers let you directly access and change the place where data is stored. This helps save memory and lets functions change values outside their own space.
When you want a function to change the original value of a variable.
When you want to save memory by not copying large data structures.
When you need to share data between parts of a program without making copies.
When working with data structures like linked lists or trees that need references to other parts.
When you want to improve performance by avoiding copying big amounts of data.