still the best book on the latest version of ISO C at the time of writing
This book has a long history. The earlier editions have been received with reasonable respect. While not being by any means definitive introductions to C they have been acceptable. I could wish that the author avoided using such flawed functions as
gets(), or if he finds it necessary for completeness that he had given much stronger warnings about its potential for introducing buffer over-run exploits in your code.
The author gives extensive coverage to the Standard C Library, something that I find to be missing in many introductions to C. He tries to give examples of appropriate use of a function along with its description.
The main body of the book finishes on page 739. There then follows an appendix that gives the answers to the review questions for each chapter. Next we have a second appendix, which is almost 90 pages of various reference material including a small selection of books (I think it could have been larger) and some coverage of web resources as well as a reasonable summary of the language as of the latest revision (so called C99).
This is not the greatest book on C, and in other circumstances I might be spending more time picking on its weaknesses. Many of his examples and exercises are pretty typical of the early 90's. However the book has several points in its favour. First its coverage is comprehensive including the new features from C99. Indeed it is the first book that I have come across that makes more than a token effort to cover this. Yes I think more coverage and more detail would have added value but the topics are covered.
The second advantage is that it has an above average index that does help you look up topics that you want to remind yourself about. I sort of wish I could tell you this was a great book. It isn't but it is still the best book the latest version of ISO C so at the time of writing this review I will give it a recommended with reservations tag. Novices could do much worse and experienced programmers may find it useful when they want to look up things like compound literals and designated initialisers.