On Apr 30, 11:27 pm, Bob Nelson <bnel...@nelsonbe.comwrote:
Right next to K&R2 on my bookshelf is _C Programming: A Modern Approach_ by
Professor K.N. King. The second edition of this book is now available. See
this URL for details:
http://knking.com/books/c2/
I don't think I'm alone among c.l.c. participants in recommending this book
(based upon the very good first edition).
Having almost finished reading the second edition, I'll go ahead and
take the opportunity to comment on this book.
First off, I can honestly say that this is the best book for learning
C that I have encountered (and I have encountered, and own, many books
on C). This book is amazingly approachable and accurate, as well as
thorough and concise. Each chapter ends with a Q&A section with real
questions and in-depth answers, not contrived surface-level concepts
that should have been covered in the main text as I have seen with
certain other books. For example, the chapter on functions ends with
questions such as "Is it legal to put a function declaration inside
the body of another function?", and "Why can the first dimension in an
array parameter be left unspecified, but not the other dimensions?"
and goes on to provide thoughtful and insightful answers that solidify
a deeper understanding of the concepts discussed in the text. In
addition to the Q&A at the end of every chapter, there are also
"Exercises" and "Programming Projects" sections that provide material
to reinforce the concepts discussed and actually develop decent
experience solving small but useful problems. The fact that the
answers to a number of exercises and projects is available on the
website is great for those learning outside a classroom environment.
The second edition does away with the "Intro to C++" section,
something I personally disliked about the first version, and adds
better coverage of "International Support" and "Program Design", areas
that are sorely missing or poorly covered in many introductory
texts.
This second edition covers every aspect of C99 and does a great job of
pointing out those areas that are new in C99 using a special icon in
the margin. The main text is littered with helpful forward and back
references. comp.lang.c regulars will appreciate the fact that this
book is strictly focused on Standard C and points out implementation-
defined behavior and platform-specific items. There is an Appendix
that covers the major differences between C99 and C89 and another that
covers the differences between C89 and K&R C.
One of the most amazing aspects about both editions are the relatively
small number of errors, technical or otherwise. After being available
for over 10 years, the first edition racked up a total of 32 errata.
That is pretty amazing considering that the first edition was over 500
pages and that the majority of the errata are minor typos or words
printed in the wrong font, etc. The second edition, at over 800
pages, lives up to the quality of the first edition; after having read
most of the text I have found 5 errors, all very minor, I can usually
spot more errors (and more significant ones) in the average C book in
the first 10 pages.
Finally I have a single book that I can whole-heartedly recommend to
anyone desiring to learn C, regardless of previous programming
experience. It would be difficult to make it through this book
without coming away with a pretty thorough understanding of the
language, even experienced programmers could probably learn a thing or
two by reading this book, I did!
--
Robert Gamble