[ACCEPTED]-After K&R what book to use to learn programming in plain C?-c
Peter van der Linden's Expert C Programming: Deep C Secrets
C: A Reference Manual by Harbison and Steele
It's not a tutorial book, but it's hands-down 4 the best book on C (even over K&R in 3 my opinion). Used in conjunction with K&R 2 (or any other tutorial), you'll get a great 1 foundation in C.
I would be tempted to read Practice of Programming and Programming Pearls. Both are 1 quite terse books and C orientated
K&R essentially covers everything you 7 need to know about C, and even implements 6 a few data structures that are commonly 5 used. If you're using *nix and want to learn 4 how to take advantage of the operating system, Advanced Programming in the UNIX Environment, Third Edition is 3 a good reference/guide to common uses such 2 as reading a file, creating threads, etc. Sample 1 code is in C.
I'd say to eschew the books entirely. Pick 7 a project, any project (although not too 6 large), and implement it in C. There's 5 no substitute for simply jumping in and 4 doing it. K&R gives enough knowledge 3 that you can begin stumbling along and gaining 2 the experience that makes for true good 1 learning.
I like Pointers on C by Kenneth A. Reek. I won't do 27 so far as to say it's better than K&R 26 but I certainly found it more friendly and 25 easier to learn from. I started with K&R, but 24 didn't really get a hang of C until I picked 23 up this book.
Edit: I also just found out that 22 the price of this book has skyrocketed since 21 I bought it. So while my recommendation 20 still stands as such, I cannot really recommend 19 it at the current asking price. So if you 18 can find a used copy or a copy at a library 17 then it's worth getting, but at its current 16 price there are other books that are basically 15 just as good for a lot less money.
Expert 14 C Programming is book I consider worth at 13 least looking through once you've gotten 12 the hang of C, although I'm hesitant to 11 outright recommend it. On the plus side 10 it contains a number of good tips and tricks 9 and some very useful advice. On the minus 8 side those tricks and pieces of advice are 7 badly organize, buried among not so useful 6 advice and half the book seems filled with 5 lame jokes, asides and irrelevant (but occasionally 4 amusing) stories. So I'd borrow it from 3 the library, but not pay money for it.
But 2 as you no doubt realize, you'll never really 1 learn C until you write C.
Pick up your K&R book again, and this 9 time do the exercises. Then compare your 8 code with the code in K&R and see if 7 it has similar elegance in the function 6 interfaces and data structures. This isn't 5 a book to read through quickly and go to 4 the next book. It contains a lot of valuable 3 information, and the exercises will help 2 you to realize some of them that you probably 1 missed on the first reading.
Beginning C by Ivor Horton (3rd edition) from 5 APress is a great introductory book on C 4 programming. This book is very thorough 3 and is not a reference book but a good tutorial 2 from start to end on everything in the C 1 language.
A great book to learn C is: C BY DISSECTION The Essentials of C Programming by Al Kelley & Ira Pohl
Very easy to 1 read wth lots of great programming examples.
The best textbook on C I have is C: A Software Engineering Approach by Peter 9 A. Darnell and Philip E. Margolis. While 8 it is (undeservedly) not as famous as other 7 books, I found it very readable and it handles 6 all the details K&R skips over.
It has 5 two disadvantages though:
- It is from 1996, so it does not cover C99. (This should be fine with you since you are interested in C89.)
- It is quite expensive.
Edit: Another book of 4 interest is C Programming FAQs by Steve Summit. While I don't 3 have this book in print, the accompanying 2 web site helped me a lot in understanding the less 1 obvious features of C.
I might also recommend reading C programs. Sadly 2 I haven't done enough of this myself to 1 recommend particular ones.
There are some brief but helpful reviews 2 at (the Russian mirror of) the ACCU, for beginner's C and 1 for advanced C.
More Related questions