The C Programming Language - Kernighan and RitchieC Programming Language, or, as it is commonly known, K&R (after the authors, Brian Kernighan and Dennis Ritchie) is classic in its rapidly expanding field. If you're reading this, in fact, you probably already have it. And if you don't have it, you should.
C Programming Language is a book that means business. What you get when you buy it is 272 (189 without the appendix) pages of sheer C. There is no discoursing about good programming style or philosophy, no discussion of design or structure. This book is an introduction to the language, pure and simple. You start with simple output statements and end with UNIX system calls, and in between you get pretty much everything that the language can do--not too surprising of an approach, given that co-author Ritchie was the original creator of C. The substantial appendix, which for someone already familiar with C is the most useful part of the book, contains a summary of the language's specifications, from the specs for the built-in libraries to the definition of a token. This is extremely convenient, considering that the annotated ANSI spec for C runs well over 700 pages; K&R just tell you what you need to know.
The combination of rigorous textbook and handy reference makes C Programming Language useful to all levels of C programmer. The textbook itself moves at a brisk pace, not stopping to give example after example, and some beginners might find it confusing. But the book's explanations are extremely clear, if slightly dense, and the examples are well-chosen and thoroughly explained. The book features exercises to give the reader some sense of his progress; an answer key is sold separately.
You don't need to know anything about programming to read C Programming Language , although it helps. You're not going to be told what a variable is or what compilation does, but the book doesn't expect a nuanced appreciation for algorithmic efficiency or even knowledge of what a function is. Basic programming terminology and concepts are explained as you go along, but you're not beaten over the head with them; this is not C for the Profoundly Dense.
C Programming Language is ideal for both programming novices and folks who already know how to program but would like to pick up C as a second (or third or fourth...) language. For more advanced readers, the book's draw is mostly in the chance to look up arcane details of the language (which has precedence, OR or XOR?). Readers who have never heard of UNIX, haven't ever touched a compiler, and have a pathological fear of while loops may want to look at a gentler introduction first, but for everyone else, C Programming Language is an invaluable resource.