Pointers in C — the simple reason
Core idea: a pointer stores a memory address. That lets your code work directly with memory, arrays, strings, and functions efficiently.
Why pointers exist
If C had no pointers, you couldn’t: edit a variable inside a function reliably, handle dynamic memory, or build fast data structures like linked lists.
The two operators
Typical mistakes
- Using a pointer without assigning a valid address.
- Confusing *p (value) vs p (address).
- Forgetting that arrays “act like” pointers in many contexts.