What is the point of pointers in C++ when I can just declare variables? When is it appropriate to use them?
Pointers are most useful when dealing with data structures whose size and shape are not known at compile-time (think lists, trees, graphs, arrays, strings, ...).
Edit
These related answers might also help (the top answer in the second link is definitely worth a look):
In C++ I Cannot Grasp Pointers and Classes
What are the barriers to understanding pointers and what can be done to overcome them?