Programming in C is in its third edition and having read it I can see why it is popular. The book is aimed at the novice programmer and uses examples and exercises to reinforce each new point.
The early chapters take the reader through concepts such as compilation, variables, expressions, decision-making and loops. The layout of each chapter is clear with a number of good examples that clearly illustrate each point. Exercises for the reader close each chapter.
The reader is then introduced to arrays and functions. It is good to see concepts such as 'const' and recursion in the early chapters and not relegated to an advanced chapter located near the end of the book. C specific topics follow, with structures character strings and pointers covered in good detail. Chapters on bit operations and the preprocessor follow and these are welcome additions. Most of the introductory C books I have seen skip these features. Chapters on data types, file IO and advanced features (unions, dynamic memory allocation) ensue. The dynamic memory allocation part of the advanced features chapter should have been greatly expanded, as I do not think you can write meaningful C programs without understanding this. Four pages are obviously not enough.
The final chapter on object-oriented programming is odd, as I am reading a book on C when C++ and C# code appears. By all means, have a chapter on how to write OO C but this chapter should have been dropped and more examples on C programming paradigms could have been added.
The book concludes with a very useful appendix covering the C language and the standard library.
This is a good introduction to the C language for a beginner. It is only let down by the lack of discussion on dynamic memory allocation. Recommended for those seeking a gentle introduction to the C language.