Practical C Programming: Why Does 2+2 = 5986? (Nutshell Handbooks) 3rd Edition
| Steve Oualline (Author) Find all the books, read about the author, and more. See search results for this author |
Use the Amazon App to scan ISBNs and compare prices.
There are lots of introductory C books, but this is the first one that has the no-nonsense, practical approach that has made Nutshell Handbooks® famous.C programming is more than just getting the syntax right. Style and debugging also play a tremendous part in creating programs that run well and are easy to maintain. This book teaches you not only the mechanics of programming, but also describes how to create programs that are easy to read, debug, and update.Practical rules are stressed. For example, there are fifteen precedence rules in C (&& comes before || comes before ?:). The practical programmer reduces these to two:
- Multiplication and division come before addition and subtraction.
Frequently bought together
Customers who viewed this item also viewed
Editorial Reviews
From the Publisher
About the Author
Steve Oualline lives in Southern California, where he works as a software engineer for a major phone company. In his free time he is a real engineer on the Poway Midland Railroad. Steve has written almost a dozen books on programming and Linux software. His web site is http://www.oualline.com .
Product details
- Publisher : O'Reilly Media; 3rd edition (August 26, 1997)
- Language : English
- Paperback : 456 pages
- ISBN-10 : 1565923065
- ISBN-13 : 978-1565923065
- Item Weight : 1.62 pounds
- Dimensions : 7 x 1.1 x 9.19 inches
- Best Sellers Rank: #626,131 in Books (See Top 100 in Books)
- #186 in C Programming Language
- #198 in Unix Operating System
- #389 in Linux Operating System
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read author blogs and more
Customer reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
These illustrations and explanations might seem really basic and a bit childish, but this way I understood the concepts on pointers straight away. It is actually a really valuable skill to be able to explain things simply. As Einstein said: "If you can’t explain it simply, you don’t understand it well enough."
Practical C Programming was actually not the first book on C that I started. I actually started with K&R2 (The C Programming Language). That was the book that was recommended and praised the most, so I figured I should study C using K&R2. I got to chapter 3, but with much difficulty. The authors of K&R2 mention that C is a small and concise language and that a book on C should therefore also be concise and small. This did not work well for me. The book assumes a lot of prior knowledge about computer science. New topics are not explained extensively. That's why I switched to Practical C Programming and I am glad I did so. I expect to understand the content of K&R2 much better now that I have finished Practical C.
As the title of the book states it is a practical book. It teaches more than just theory and the C syntax. It teaches how to write good programs and it focuses on good programming style.
The book is quite old (1991 – 1997). Some information in the book is really outdated, but the main concepts and lessons still apply (I will share some examples about outdated info in the book later on).
Overall I found Practical C Programming a really beneficial book. It is easy and enlightening as a first book on C. It is suitable and accessible for new programmers without much experience or a background in computer science. The book contain a few minor things that I disagree on with the author. I rate it 7.5 out of 10.
By Jacob Huisman on July 22, 2019
These illustrations and explanations might seem really basic and a bit childish, but this way I understood the concepts on pointers straight away. It is actually a really valuable skill to be able to explain things simply. As Einstein said: "If you can’t explain it simply, you don’t understand it well enough."
Practical C Programming was actually not the first book on C that I started. I actually started with K&R2 (The C Programming Language). That was the book that was recommended and praised the most, so I figured I should study C using K&R2. I got to chapter 3, but with much difficulty. The authors of K&R2 mention that C is a small and concise language and that a book on C should therefore also be concise and small. This did not work well for me. The book assumes a lot of prior knowledge about computer science. New topics are not explained extensively. That's why I switched to Practical C Programming and I am glad I did so. I expect to understand the content of K&R2 much better now that I have finished Practical C.
As the title of the book states it is a practical book. It teaches more than just theory and the C syntax. It teaches how to write good programs and it focuses on good programming style.
The book is quite old (1991 – 1997). Some information in the book is really outdated, but the main concepts and lessons still apply (I will share some examples about outdated info in the book later on).
Overall I found Practical C Programming a really beneficial book. It is easy and enlightening as a first book on C. It is suitable and accessible for new programmers without much experience or a background in computer science. The book contain a few minor things that I disagree on with the author. I rate it 7.5 out of 10.
Well, materials of this book are indeed easy to read. But!. many samples use globals!!!???? Big no no! Start beginners with one of the worst habits! C primer book, also a low cost book, has better content and samples. Unfortunate side is that both their exercises are mainly for syntax recall.
The author also goes beyond the basics, and covers some hints and tips that are not mentioned in any other beginner's book that I can find. For example, many beginner's books warn about the erratic behavior of scanf(), but only Practical C takes the extra step by providing a complete workaround (the author advises not to use scanf(), and to use fgets() and sscanf() instead).
I'm only a beginner, and so far I have purchased and read through Greg Perry's Absolute Beginner's Guide to C, Dave Mark's Learn C on the Macintosh (and on Win 95), the classic K&R C Programming Language, and Practical C. All of these books have their advantages, but I think K&R is a bit too difficult for complete newbies. The Perry and Mark books may be a little too simple, but they're excellent quick reads. Practical C is the perfect middle ground, and I recommend that it be read in conjuction with one of the easier books before moving on to K&R.
I also recommend that you read through a chapter completely to get the concepts, then go back and do all the exercises for reinforcement. That's what I did, and even though I struggled to "get" some of the material the first time around, on the second read-through everything managed to sink in.
I can't recommend this book highly enough -- it is clear, accurate, and a pleasure to read and work through.
The examples are clear. It has a bunch of exercises. Some of the examples presented have errors but that is fully called out by the author, rather than thinking them as errors or examples, think of them as more exercises. You never really learn a programming language until you think in that language AND debug code from someone else. Learning C is not easy, nor instantaneous. You have to commit some time to it and preferably have some guidance along the way. This book is that guidance.
Top reviews from other countries
I hunted around for an IDE to use and settled on Code Blocks, an open source IDE that runs on Windows 7 which you can read more about at [...] . This worked well for me but I can't say it will for you, I just felt that it might save you some pain to know about it!
There are a couple of exercises that I found irritating as they were too vague and skipped them and it was a shame that there are no answers to the excercises and the code isn't available on the O'Reilly FTP server. Whilst this is a pity, it's not the end of the world - I don't think I've ever read a technical book without googling odds & sods whilst reading!
That being said a good introduction to C which starts you off by promoting good habits. I only wish I'd bought this book first...
Good luck!










