Paperback: 226 pages
Publisher: O'Reilly Media; 1 edition (May 18, 2013)
Product Dimensions: 7 x 0.5 x 9.2 inches
Shipping Weight: 13.6 ounces (View shipping rates and policies)
Average Customer Review: 4.6 out of 5 stars See all reviews (38 customer reviews)
Best Sellers Rank: #132,037 in Books (See Top 100 in Books) #53 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C #92 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C++ #522 in Books > Textbooks > Computer Science > Programming Languages
This book is a useful overview of what pointers are, how they work, and how they should be managed for security and effectiveness. It is great to have a recent book devoted entirely to pointers. Many books on C either scant the topic, or deal with woefully out of date C standards. Reese takes into account the current C11 standard, which alone makes it very welcome.The book, however, has several flaws. A lot of the material deals with nonstandard libraries. For example, the section on pointers and threads mentions C11 support for threads, but then discusses the POSIX standard rather than going into any details about the C standard. I found this and other references to extensions outside the C standard annoying; a book about C should focus on portable code.Also, the book is not well organized. Throughout the book there are "forward references" saying that the topic being mentioned will be discussed elsewhere later. This leads to a lot of back-and-forth flipping of pages. For example, pointer arithmetic is explained in Chapter 1, but is used only in Chapter 4; a particular data structure is minimally introduced on page 133, then actually used sixty pages later. The way information is presented and explained could have been more systematic.The biggest flaw is that some of the code is nonstandard and frankly, quite ugly. For instance:(1) a function on page 87 uses pointers to memory that has already been deallocated, which is undefined behavior. The same function has redundant variables "length" and "currentPosition" -- one of the two would have been sufficient to accomplish the task.(2) Elsewhere, Reese defines a linked list header structure with pointers to the head node, the tail node, and the current node.
I'm a career developer but most of my work has been done in higher level languages like C#, Python, Delphi and a couple others. I did a bit of C programming in school but that was a long time ago and much of that knowledge has been lost. I've always had an attraction to C because I love its simplicity and power, but I never really took the time to understand it more deeply. I'm no stranger to concepts like pointers, function pointers, the stack, the heap, etc but much of my knowledge was really just on the surface - I knew enough to answer job interview questions, but I didn't know enough to really apply these concepts in C more intelligently.This book went a long way toward helping me really understand more advanced pointer concepts on a deeper level. I feel much more confident knowing when and where to use these concepts as well as how to identify potential memory leaks and more. I now understand how things operate on a more fundamental level. One thing I like is that this book didn't bog me down in too much academia, most of what I learned is on the more practical side of development, which is exactly what I was looking for. Another great feature is that this book is very short and concise. I really grow tired of pouring through thousand-page books all the time.If you have some development experience and really want to have a great foundation in C then I recommend the following three books. All of these books are less than 300 pages each.- The C Programming Language (Kernighan, Ritchie)This is a classic that all C developers should work through. This book is short, but packed full of great content and challenging exercises.
Understanding and Using C Pointers Guide to Old Radios: Pointers, Pictures, and Prices 41 Tips and Pointers for the New Art Collector Understanding Bergson, Understanding Modernism (Understanding Philosophy, Understanding Modernism) Understanding and Using the Light Microscope: Introduction and QuickStart Guide to Using Compound Light Microscopes Take Back Your Life!: Using Microsoft Outlook to Get Organized and Stay Organized: Using Microsoft(r) Outlook(r) to Get Organized and Stay Organized (Bpg-Other) Using SPSS for Windows and Macintosh: Analyzing and Understanding Data (6th Edition) Using SPSS for Windows and Macintosh: Analyzing and Understanding Data (5th Edition) Poor-Quality Cost: Implementing, Understanding, and Using the Cost of Poor Quality (Quality and Reliability) Understanding and Using English Grammar with Audio CDs and Answer Key (4th Edition) How to Read a Nautical Chart, 2nd Edition (Includes ALL of Chart #1): A Complete Guide to Using and Understanding Electronic and Paper Charts Understanding Migraine and Other Headaches (Understanding Health and Sickness Series) Pro Se Guide To Using And Understanding Pacer.gov Introduction to Computation and Programming Using Python: With Application to Understanding Data (MIT Press) Nonvolatile Memory Technologies with Emphasis on Flash: A Comprehensive Guide to Understanding and Using Flash Memory Devices Troubleshooting Optical Fiber Networks: Understanding and Using Optical Time-Domain Reflectometers Understanding and Using English Grammar, 4th Edition (Book & Audio CD) Understanding and Using English Grammar Workbook (Full Edition; with Answer Key) Understanding and Using English Grammar Chartbook The Runic Workbook: Understanding and Using the Power of Runes