If you have read the previous two chapters from beginning to end, you may be suffering from a mild—or perhaps not so mild—case of information overload. Pointers have so many different uses that it's difficult to learn everything about them at once.
Don't be discouraged if some uses of pointers still aren't clear to you. The latter parts of this chapter cover some rather esoteric techniques, which you probably won't use often. When needed, however, these techniques offer some very powerful capabilities.
Like other programming concepts, pointers are best learned through practice, so use them at every sensible opportunity. Remember, you don't need to know everything about pointers in order to do something with them. The more you use pointers in everyday programming, the sooner all the pieces of the puzzle will fall into place.