What? An entire book just about pointers?
That was my first reaction when looking at this volume. But Richard Reese's Understanding and Using C Pointers is actually a pretty good source of information about this critical subject. At times, it is a bit repetitive; in other cases, I think a more detailed explanation about an example would have been helpful.
C pointers are a sore subject for a lot of people. Much C code is obviously written to avoid them; those developers probably don't have a deep understanding of the subject. Competent assembly programmers know that a pointer is akin to assembly's indirection, and so they figure that the C version is no big deal. But in C, they are far more nuanced than when working at the mnemonic level.
The book is generally well written and accurate, though a couple of flagrant mistakes were odd, like a comment that you can make a number negative by setting the MSB. Well, yeah, that will be negative, but flipping the MSB will probably not yield the desired result.
The subject is completely covered, and not just in isolation. For example, there's plenty about dynamic memory use, which is, of course, a place where pointers are required.
The chapters give a good sense of the material.
Read the full book review on Embedded.com.
— Jack G. Ganssle is a lecturer and consultant on embedded development issues. He writes a blog for Embedded.com.