I think your answers foreground is good.
Changing values in pointers are good also because, as you said, it stores a block of memory that can be passed to any variable at any given time.
A pointer is a variable that contains the address of another variable. Pointers and arrays are closely related, are sometimes the only way to express a computation, and usually lead to more compact and efficient code.
Pointer handling means greater if we understand that they contain and pass memory address blocks easily, allowing the change of such a variable simple. They can be passed through functions, and be altered there. The complexity of it all makes it all to simple. Pointers co-exist with their main source. The change of one affects the other(s).
In the simplest terms, pointers resemble mirror-like.
I hope this sounds understandable.
- Stack Overflow