The  C Programming Language
Enlarge cover
Rate this book
Clear rating

The C Programming Language

4.37 of 5 stars 4.37  ·  rating details  ·  4,389 ratings  ·  236 reviews
This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard.

From the Preface:
We have tried to retain the brevity of the fir...more
Paperback, Second Edition, 272 pages
Published March 22nd 1988 by Prentice Hall (first published January 1st 1900)
more details... edit details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about The C Programming Language, please sign up.

Be the first to ask a question about The C Programming Language

The  C Programming Language by Brian W. KernighanThe Pragmatic Programmer by Andrew HuntDesign Patterns by Erich GammaRefactoring by Martin FowlerStructure and Interpretation of Computer Programs by Harold Abelson
Essential Programming Books
1st out of 108 books — 234 voters
Structure and Interpretation of Computer Programs by Harold AbelsonIntroduction to Algorithms by Thomas H. CormenThe  C Programming Language by Brian W. KernighanDesign Patterns by Erich GammaThe Pragmatic Programmer by Andrew Hunt
Essential Books of Computer Science
3rd out of 139 books — 84 voters

More lists with this book...

Community Reviews

(showing 1-30 of 3,000)
filter  |  sort: default (?)  |  rating details
Nick Black
Feb 10, 2014 Nick Black rated it 5 of 5 stars
Recommended to Nick by: Jim Greenlee
Found myself rereading this the other day, after recommending Chapter 8 to a young engineer seeking the Truth behind malloc(3)...still as fresh as the day it was printed, although I do note minor failings now (ubiquitous definitions of "MAXLINE" to 1000 rather than idiomatic use of ANSI/ISO's BUFSIZ, rather more use of "register" than I care to see in peacetime, etc). Also, when are we getting an update for C99? I'd like to see more people making proper use of <stdint.h> than is today typi...more
Sep 18, 2012 Pedro rated it 5 of 5 stars
Recommends it for: People learning C
Shelves: unrec
Great book as a reference for C.

If you already know how to program and want to learn C, this is the book. But you must do the exercises: don't read the book; work the book.
P Doerr lulz
Excellent A+++++++ Would read again!
The C Programming Language is THE VERY BEST way to learn the C programming language. Starting with the basic "Hello World" program, this book covers everything (of course, as the official guide to the language this is expected). As any programmer worth his salt will tell you, C is one of the most useful languages, and at least basic knowledge is mandatory.
If you're a geek, you have to prostrate yourself in the direction of Bell Labs whenever this book is mentioned. I'm not really a geek, so it's optional.

Well, perhaps I'd better do it anyway. Just in case.

This was the first ever introduction to a computer (forget programming, or even knowing that C is a software program running using another software program called compiler.. I mean exposing the first cro magnon to a machine that looks like TV and has a typewriter in front). And I can tell you the cro magnons sitting with me in the classroom in the second year of undergrad did not like this book. AT ALL! I still remember looking at the hello world program and typing it in and saw hello world gett...more
Ok dudes, this is THE book. If you want to know how to program in C, the once and future language of all computing, you must buy this book.

EFF this C#, CLI, J#, VB, and all those other abominational languages that are trying to kill good programming skills. If you want to learn how to really program you need to DO this book.

You don't read this book, you DO it! Thought I made a typo, huh? As a general rule, shorter books are better than those SAMS-type 1000 page tomes, teach you more, and are har...more
I read this years ago when I was first taking C. I don't have this edition, but an earlier one. After wading through several other books, I kept coming back to this one as a reference while programming. It is deceptively short & sweet. Re-reads constantly found me more avenues to explore using their basics.

I gave a copy to my son & he came to the same conclusion. While other, larger, & more specific books come & go as C evolves, this basic work is a must for any serious programme...more
Certainly a book hyped by many folks, calling it the to read when learning C.

Well, in reality it's just that, hyped. There is no objective reason why this book is a must-read or good at all. Sure, it does cover the important aspects of C, but it's very shallow, never going into details. As such, it's as good as every "Learning $language in $small_amount days".
Roy Vanegas
Regardless of the fact that the architect of the language is a co-author, this book is simply not a good book on discussing the intricacies of C, a language replete with low-level details defining its behavior.

Everything, including a discussion on sequence points and side effects, among other topics, is included in Peter Prinz's and Tony Crawford's C in a Nutshell, which is masterful in its coverage of the language. Combine C in a Nutshell with Summit's C Programming FAQs and you have the entire...more
Kyusik Chung
Truly the C Bible

If only all programming books were this succinct and to the point...
I can't say I learned how to program C using this book -- that distinction goes to the long-forgotten Microsoft Quick C for Windows manuals and a reference manual put out by the Waite Group. I can't even say that I need to consult this very often anymore, although it will quickly clear up any questions you might have about arrays of pointers to unions of structs.

This book is the ideal presentation of a language. (When was the last time you saw both the grammar and standard library of a language...more
Mar 22, 2011 Joecolelife rated it 5 of 5 stars
Recommended to Joecolelife by: Online Bookstore
As somebody else said, this book is NOT for a programming beginner - its style of writing is quite terse with few or no actual illustrations (via drawings of flow-charts {or equivalent}, programming-structure, etc.) versus a lot of text to read through. To make matters worse, C (and its derivatives like C++, C#, etc.) is a very LEAN (and truly MEAN!!) programming language 'per se' - with relatively few prewritten macros, subroutines and functions, one can get frustrated very quickly! [Furthermor...more
Stefan Kanev
This is a great book, definitely worth reading.

It's not my first pass through it, but I still learned new stuff. It covers the language well, although it does not go into as much depth as I would like. It does not cover the practical aspects of system programming either.

The best thing about this book is the brevity. Everything is explained clearly and with as little text as possible. It might not be the best first book for C, but it is definitely a great second one.

Finally, this book is old. C h...more
For years, this has been the standard of programming texts. I feel strangely alone when I say that I think it's okay, but not fantastic. For starters, this text hasn't been updated to reflect the new changes in C. The cover tells you up front that this is for ANSI C, which was a good standard 10 years ago, but we're moving past that.

I do appreciate the fact that this book is terse and has an intended audience of people who are comfortable around computer fundamentals. I often have to skip the fi...more
Ettore Pasquini
Oct 18, 2010 Ettore Pasquini rated it 5 of 5 stars
Recommends it for: software engineers
Recommended to Ettore by: CS101 professor
Shelves: technology
Any software (hell, even hardware) engineer has hopefully heard about this book. If you don't own it, buy it right now! You won't find a single engineer on Earth telling you this is something less that awesome. This book achieves the perfect balance between terseness and exhaustiveness.

Computer Science book writers and publishers: can we go back to a writing style where computer books are in the 150 - 200 pages range, instead of the regular 600 - 900? Come on.
This book (together with Kochan) helped me learn C, which quickly became my favorite programming language and remained so for many years. Contains the original 'hello, world' program which has been copied ad nauseum ever since. I know the authors released a second edition but I never looked at it, the first one was fine. I suspect the main reason for the second edition was to replace the classic K&R syntax with the ANSI standard.
One of the things that I like about the C programming language is that it is very small and simple to learn. This book is correspondingly small, yet it is comprehensive.

I already knew some C when I read this book, but reading this book gave me an appetite for understanding more about how compilers work and about the theory and design of programming languages.
Brian Davis
This is the entire definition of a systems language -- and its standard library -- in a large-font book that will easily fit in your jacket pocket. That is a mind-blowing accomplishment in itself.

There is not yet -- nor has there ever been -- a technical book that approaches this in its simplicity and completeness. There is a poetic beauty to the fact that the instruction manual for the language which underpins very nearly every piece of software on Earth is so succinct.

At the end of the day, Ke...more
Reading this again, I'm finding that a lot of the coding style and practices are outdated, but it's still a good foundation for programming, and the C language in general is a good starting point if you want to work with native apps.
My very first computer programming book. Welcome to programming, here's C.
Adam Roan
I remember picking this book at age 16 after rummaging through all the crap from Schildt and others. Nine years later, it's sitting on my coffee table like an ancient manuscript or some old papyrus.

K&R2 doesn't fill in gaps of knowledge of arguably one of most fundamental languages, but in fact lives underneath C - it acts as a reference, an excellent tutorial, even a birth of a specification before the ANSI standard was officially released. Ritchie single-handed the entire text which gives...more
K&R2, as it's known in the field, is a tutorial and reference guide to the C programming language.

I first read it at age 15 with no formal training in programming at all, working on top of some short online tutorial, but I kinda' sorta' got most of it. I think this says something great about my hobby horse, unschooling, but more to the point it also says something good about this book: it manages to communicate its ideas quite well, I think.

Beyond helping a fledling programmer get started on...more
Vlad Piersec
K&R is a great book for learning the C language but it is not for beginners (this is also what the authors say). If you are already familiar with another programming language then I think this is the best book you will get on C.

The writing style is very good and the ideas are highly understandable. The notions are explained in detail but without taking too much space. The authors say in 200 pages what others can't put in 500 and this is something to admire.

Although I found it very nice, I wo...more
I wish all tech books could be this good.

Nearly all books in the computer science field are terrible. K & R is exceptional. It is comprehensive while still managing to be compact.

K & R is showing its age in some respects. The text is terse, which can be frustrating. But it also rewarding once you've worked through the problems. Few other books in this field are brave enough to demand you clarify your thinking.

Most other books, even books which the author claims are modeled after K &...more
At first, I read chapters from this book and thought "wow, these guys sound like all the other 'intro to a programming language' books that I've read." But it dawned on me that K&R did it first and all the other books I read were really copycats. Because of that, I respect the clarity in teaching the core syntax of the language that so many others have mimicked.

Even thought K&R teach C well, I was disappointed with a lot of the style in their samples. The book was first written in a diff...more
Love at first read.
Of course as the marriage with this programming language has progressed, the warts have become more apparent, I find myself frequently frustrated with my obstinate partner's bad habits, and I must admit to straying with younger and much more beautiful consorts.
But there's still a special place for C, and this is the book that introduced us.
A manual and reference to ANSI C, with many well-written examples. While probably not be the best starting point if you wanted to learn C today, this book provides a very exciting historical insight to the state of programming and the development of the C language (both the standard itself and non-standard features of compilers) between 1978 and 1988.
Bing Chen
In the beginning the content was brief but also easy understanding, and it also helped me fix some redundance of my coding, especially the ideas of considering address wasting. But then in the middle the pointer code examples were just mess to me, also I didn't see anything content about memory distribution idea of what I knew and considered.
Evan Snyder
Reading with the aim of getting a general sense of what's out there in C, I was very happy with this book. They do an excellent job of laying out some basics for new programmers, which I mostly skipped through, but noted their very direct and well-written approach.

Granted, I jumped around lots and didn't do the provided exercises, it seems that working through all the detail step-by-steps and completing the exercises would let one hit the ground running in C. If, like me, you already know progr...more
Mel Padden
THE Programming book for me, for its simplicity and also how it gives you not just a grounding in C but makes you think through the exercises. Re-read it to refresh my C for a specific purpose, and promptly fell in love with it all over again.
« previous 1 3 4 5 6 7 8 9 99 100 next »
There are no discussion topics on this book yet. Be the first to start one »
  • Advanced Programming in the Unix (R) Environment
  • The C++ Programming Language
  • Compilers: Principles, Techniques, and Tools
  • Programming Perl
  • Programming Pearls
  • Introduction to Algorithms
  • Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
  • Art of Computer Programming, Volume 1: Fundamental Algorithms
  • Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Art of Unix Programming
  • The Little Schemer
  • Learning Perl
  • Code Complete
  • Mastering Regular Expressions
  • Applied Cryptography: Protocols, Algorithms, and Source Code in C
  • The Design of the Unix Operating System
  • Expert C Programming: Deep C Secrets

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
Brian Wilson Kernighan is a computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed greatly to Unix and its school of thought.
More about Brian W. Kernighan...
The Practice of Programming The Unix Programming Environment The Elements of Programming Style Software Tools D Is for Digital: What a Well-Informed Person Should Know about Computers and Communications

Share This Book