Understanding and Using C Pointers by Richard Reese
Summary: Pointers straight to the point
Pointers are the nemesis of most of newcomers to C. There are few issues related to this topic. Pointers arithmetics is confusing, people get confused when it comes to characters and strings, array based arithmetics using pointers will not make any beginner happy. And, after all of that, comes pointers to functions and issues related to security (e.g. stack overflow).
So far, I haven’t found book so much focused on the topics as Understanding and Using C Pointers is. Typically, C related books try to cover all the aspects of the language, here on the contrary, we have different approach. What you get here are pointer related topics only. This means that you should be already familiar with C (at least in the way you are able to compile and run C based code). Various topics discussed in the book cover almost all of the aspects of the pointers. You will learn how pointers arithmetics work, how to allocate memory, how to deal with multidimensional arrays using pointers and dynamic allocation. Apart from typical usage of pointers you will also lear how to use them in context of functions (function pointers).
I have found this book very useful, however, I think it might be still an issue to follow all the odds and ends by C newcomers. Some topics (e.g. arrays of function pointers) are explained such way it might be confusing. The problem here is that reader must understand and follow three different aspects of the problem at the same time: function pointer, array, character as indexes of arrays and, most confusing, why the hell do we declare 128 elements array if we only use two of them. I perfectly understand author’s point of view, however, it is still confusing. Another issue is that illustrations in the book sometimes miss the proper description and explanation (in my opinion Kochan’s C language book makes better use of them).
Anyway, I still think that buying this book is an idea worth considering. If you know C, but would like to get familiar with odds and ends of pointers you should consider buying this one.
O’Reilly (print): Understanding and Using C Pointers
O’Reilly (e-book): Understanding and Using C Pointers
Amazon (print): Understanding and Using C Pointers
Amazon (e-book): Understanding and Using C Pointers
Safari Books Online: Understanding and Using C Pointers