"Understanding and Using C Pointers" by Richard Reese

An absolute must-read in my view for any novice or mid-level C programmer, highly recommended!

"Understanding and Using C Pointers" by Richard Reese

This post is part of my Book reviews series, where I share thoughts and impressions on the books I read.

"Understanding and Using C Pointers" is written by Richard Reese and published in 2013 by O'Reilly.

C pointers, what they are, how they work and how to use them effectively.

The book is split in 8 Chapters over 200 pages.

Code examples are showcased, together with explanatory diagrams.

👩‍💻🧑‍💻 Who is this book for?
Programmers who want to develop a deeper intuition as well as a stronger basis on C pointers.

The author takes you on a very gentle curve of learning, which allows you to really grasp what is explained.

It's a weekend read, but it can also serve as a long term reference for some trickier topics.

The diagrams are top notch, and they really convey the concepts they are meant to clarify very well.

I've only found one mistake in the text, a relatively minor one at that, in the entire book, which is great.

Nothing really comes to mind.

🚧 Improvements I would suggest
The code portions could use a bit more differentiation vs. the normal text, probably the nicest would be to use a slightly darker font color.

Add more advanced content; the book could easily be twice as large in size and it would be still fantastic, assuming the added content is as the same level of clarity and conciseness as the existing.

More content on the trying to code safely and defensively when extensively using pointers.

Especially the parts regarding passing pointers to functions and multi-dimensional arrays - even though very useful to build a solid intuition of a topic that can get very complex very fast by adding another star to the start of that "simple" pointer - could benefit in my view from a bit slower pacing in the explanations, more clarifications with more varied examples.

🤔Final Thoughts
This is quite a short review, and that says a lot about the qualities of this book.

An absolute must-read in my view for any novice and mid-level C programmer, highly recommended! I also think there might be a bit to learn here even if you feel you are more of a "senior" level in C.

I really hope O'Reilly and the author consider giving it another edition, with much more advanced content and sharing of some of the key lessons learned in the last decade of C code being written across many large codebases.