Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


C Books Reviews

News See also Open Introductory
(High School level)
Introductory
(University Level)
Advanced Reference Classic
Algorithms C on Unix Systems programming Pointers Errors and Debugging Style Optimization of code C++ as better C

C is not very good as a first programming language. After all, you can think about C as a 'portable assembly language' but without assembler transparency and closeness to machine architecture. For more info see C Webliography.

In an ideal world there are two ways (and two major schools of teaching) to master programming which can be called "bottom-up" and "top-down" approaches:

Both schools are valid approaches but the university reality is different and actually if your first language is C you need to thank God that it's not C++ or Java ;-)

For an introductory book on C (especially high-school level book) I recommend a book that use flowcharts and figures extensively (C by Example) and has decent typographical quality (again C by Example is pretty decent, Wrox press books are also not bad). Please be aware of the recently ratified new C standard - C9X. Only books published after 2000 cover this standard.

Books with a compiler on CD are a nice way to get a decent compiler if you do not have any and use Windows. (on Linux C compiler -- gcc is free and it's more or less OK but without GUI and an integrated debugger it is less suitable for a beginner).

On Windows you either need to pay at least $49 for a Microsoft C++ standard edition (a very decent compiler suitable for beginner) or use free Borland C 2.0 or Borland C++ 1.0.  Especially brave guys can try EiC  -- free C interpreter that has win32 port -- interpreters are much better than compilers for beginners.

I do not recommend trying to install DJGPP for DOS on Win95 unless you really have only DOS. It makes no sense to use it in Windows environment and standard Linux contains gcc, which is probably better for beginner.  Some books like  Teach Yourself Data Structures and Algorithms in 24 hours come with DJGCC on the CD. Avoid it.

It's cheaper to buy a book with a Windows compiler, than two things separately. Visual C++ 6 teaching edition in included on CD of at least two books (see Sams and Wrox press books) and it's an excellent C compiler for beginners with a lot of nice features including good editor with syntax highlighting and a decent built-in debugger. If you need a compiler those books are probably preferable. Please remember that these days, most commercial C compilers are bundled into C++ compiler packages, such as Visual C++, and Borland C++ and don't be frustrated if you get C++ compiler instead of C compiler you actually wanted. It will work as C compiler for files with extension .c. 

The simplest way to start learning programming in C is not to type examples from scratch, but cut and paste a suitable example from the book and then gradually modify it until it will perform what you want to accomplish. That means that book without a downloadable examples (or examples of CD) is a very bad choice.  As diagnostic in C compilers is pretty bad and you should never try to type examples for which you can find a suitable prototype. 

I would like to stress it again: never ever try to type your first C programs ;-). You will be very disappointed by the quality of C diagnostics. Beginner should start with working example that is similar to what he needs and gradually modify it. Again you need to understand that diagnostic is really horrible and I am not joking here. If an example you can and paste runs OK before your changes than each time you make changes you know where you can introduce an error and thus is in much better position to accomplish a task without unnecessary frustration. Please remember that programming is not about writing program, it's about modifying existing program ;-). Using prototype  you will be able to compile and execute modified program probably in half of the time and with far less  problems. If you use VC++ 5.0 or better than  after opening existing C-file, the project will be created for you automatically.

Using examples from the book has another implicit advantage: implicitly you will copy the author style in your programs and thus be introduced to a more or less OK style of programming. In good books each example starts with a comment line that describes it. Also it uses some reasonable naming conversion and comments in the body.

In many respects C is is an assembly level language with similar traps and pitfalls. Please read C Traps and Pitfalls the only book the honestly discuss the problems with this language. It might be better to buy it as a second book than two very similar introductory level books on the subject.

Again CD or downloadable code for examples is a must (Wrox Press has freely downloadable code for all books), e-text of the book is desirable -- in this case you can include your notes into the text, search for words and phrases, etc.  But you can survive without it and making notes is actually an important part of learning process and it should be made too easy :-).

Do not believe that flowcharts are obsolete -- for beginners they are tremendously important and teachers/books that ignore them put students in a very serious disadvantage.  From my teaching experience I firmly believe that a beginner book based on flowcharts has huge advantage over any other approach.

Illustrations are extremely important too. Book without illustrations usually is definitely less clear and hostile to the student that book with decent illustration in almost any area of C (especially pointers). An example of decent illustrations see Chapter about pointers  from Practical C Programming (Nutshell Handbook) that is available online. Again, C by Example is a nicely illustrated book.

As for intermediate-advanced books I strongly recommend K&R book. this is classic and you  can always benefit from reading a book that is part of the history of  programming even if some ideas are no longer relevant.

Beware of OO propaganda-based mixed C/C++  books. C is an interesting enough and complex enough language to study separately and only then move to C++, if at all . C++ is an extensible language and this extensibility present several unobvious for beginners dangers in complex programming tasks. Debugging is really difficult in C but it's even more difficult in C++.

IMHO the value of OO outside visual interfaces is questionable. And even in this narrow domain in many cases one will be much better served by combination of C and Tcl/Tk or other suitable scripting language.

Be skeptical.  Suggestions below should be critically evaluated. Select carefully. Its amazing how much simpler is to learn C using really great books than to do the same average books...  Do not consider yourself to be stupid if you do not understand something on the lecture or fromthe book. It might be that a completely opposite situation :-).

For obvious reasons I prefer books that have e-text available.  There are several of them in www.informit.com  For example Teach Yourself C in 24 Hours  is pretty decent, written in a nice style.

Dr. Nikolai Bezroukov


Search Amazon by keywords:

 You can use Honor System to make a contribution, supporting this site


Old News ;-)

[Reek1997] Pointers on C
Kenneth A. Reek, / Paperback / Published 1997
 
C and Unix Programming A Comprehensive Guide
by N. S. Kutti
About the Author
Dr. N. S. Kutti has been teaching computer science courses for more than two decades and is now writing textbooks in the United States and abroad. His research interests include real-time systems, operating systems, distributed systems, and programming. Dr. Kutti is also the co-author of Data Structures in C++, published by Prentice-Hall, Inc.

Book Description
Reviewers of the earlier version of this book credited it with both an original approach and creative explanations for the various concepts. This comprehensive new edition covers both C and Unix programming. It follows the ANSI standard in C programming and the POSIX standard in Unix programming, which makes the text a useful tool for writing programs for industry.

Using numerous examples, C and Unix Programming: A Comprehensive Guide explains the basic concepts of the C language by creating the C-Virtual Machine, a unique, effective approach to helping students grasp technical ideas.

Everyone from high school graduates who are interested in programming to IT professionals, scientists, researchers, and other sophisticated computer users will benefit from the techniques and examples provided.

Among its many key features, this book:

???+ C Programming- The Essentials for Engineers and Scientists
by David R. Brooks, D. Gries (Editor), F. B. Schneider (Editor)

Looks like Intermediate to advanced university textbook.

I do not know much about David Brooks but David Gries was a talented author when he was young.  Later he went into verification fundamentalism and published nothing on real value.

I hope that the book is in the style of  Primer on Structured Programming Using Pl/1, Pl/C and Pl/Ct  by Richard Conway, D. Gries, which was on of the best intro books on its time.

They start the book with explaining of basic I/O.

I see the main value of the book that it  covers classic algorithms like Searching&Sorting (Ch.8),  Basic statistics (Ch.9) and Binary Trees (Ch.10) and thus can be used as a intro "Algorithms and Data Structures" textbook.

C for Java Programmers
by Tomasz Mueldner
Our Price: $35.00
Textbook Binding - 500 pages 1 edition (March 1, 2000)
Addison-Wesley Pub Co; ISBN: 0201702797 ; Dimensions (in inches): 1.08 x 9.06 x 7.36
Amazon.com Sales Rank: 727,258
Avg. Customer Review: 4 out of 5 stars
Number of Reviews: 1
Applied C An Introduction and More
by Alice E. Fischer, David Eggert, Stephen M. Ross
Paperback - 1136 pages (June 2, 2000)
Computing McGraw-Hill; ISBN: 0070217483
Amazon.com Sales Rank: 1,155,086
Sams Teach Yourself C for Linux Programming in 21 Days
by Erik de Castro, et all
$29.99, 768 pages 1 edition (December 22, 1999)
**** C Unleashed (Unleashed)
by Richard Heathfield, et all. Paperback - 1344 page, Sams  
A very good book. See review below.
Sparc Architecture, Assembly Language Programming, and C
by Richard P. Paul
Paperback - 448 pages 1 edition (July 28, 1993)
Prentice Hall; ISBN: 0138768897 ; Dimensions (in inches): 0.77 x 9.22 x 7.00
Other Editions: Textbook Binding

Amazon.com Sales Rank: 79,328
Avg. Customer Review: *****
Number of Reviews: 1

***** This is an excellent book about SPARC Assembly Language. June 26, 1999
Reviewer: Joseph D. Bissell bissell@cis.udel.edu from University of Delaware, Newark, DE
For anyone interested in learning about the SPARC Architecture/Instruction Set (and RISC machines in general) this book is invaluable. It is especially useful for optimizing iterative and decision making C/C++ constructs. In fact, if one follows the tenets espoused in this book, one can learn to hand optimize time-critical sections of C/C++ code that is better than that produced by gcc or cc - the aversion of the UNIX community to write any code in assembly language notwithstanding.

The book really delivers what its rather verbose title implies. That is, a really outstanding feature of the text is the way in which the author translates the standard C/C++ constructs to their low-level counterparts. He does this in stages - creating a variety of examples that progress from functional but grossly inefficient code fragments up to superbly succinct variants. I have used this book in a one semester undergraduate course at the University of Delaware for three years and have also used excerpts from it when I have taught the MIPS Architecture. There is no other book that treats RISC (or CISC) architecture from Professor Paul's relational premise, with which I totally agree. Having taught INTEL stuff for 10+ years, I firmly believe that much of its content could be effectively utilized in CISC courses. The book is also used as the secondary text in the graduate compiler course at U.D.

The book is not without flaws, most of which are because of an incredible number of typographical errors - I have counted over 60 just involving commas! Hopefully the new edition which I believe is due to be published soon will have been edited/typeset with more care. Also, there are some minor changes to the gnu software (gdb and gcc) that need to be upgraded.

Data Structures : A Pseudocode Approach With C
by Richard F. Gilberg, Behrouz A. Forouzan.
Hardcover (February 1998) Amazon price:$61.95
Pws Pub Co; ISBN: 0534951236
Amazon.com Sales Rank: 217,316
Avg. Customer Review: 5 out of 5 stars
Number of Reviews: 1
5 out of 5 stars Very well written Data Structures text!Reviewer: A reader from USA May 28, 1999
This is an incredibly rich Data Structure text presented in a easy to read and straightforward manner. The text layout is appealing to the eye with lots of supporting pictures, diagrams, tables, Pseudocode algorithms, and program code. The Pseudocode is general for any language yet closely relates to C. The program code is in C. The Pseudo code logic covers all data structures very well. ~J Franzmeier
Data Structures : An Advanced Approach Using C
by Jeffrey Esakov, Tom Weiss. Paperback
Amazon price:$49.60

Glibc : A Comprehensive Reference to Gnu/Linux Libc
Jeff Garzik / Paperback / Published 2000
Amazon price: $40.00 (Not Yet Published -- On Order)
 
Optimizing C ++ ~ Usually ships in 24 hours
Steve Heller / Paperback / Published 1998
Amazon price: $44.99
Actually this is not a book about C++ -- it is mainly about optimizing C. 
 
???? C Programming : The Essentials for Engineering and Scientists (Undergraduate Texts in Computer Science) ~ Usually ships in 2-3 days
David R. Brooks, D. Gries(editor), F. B. Schneider(editor)/ Hardcover / Published 1999
Amazon Price: $49.95
Hardcover - 380 pages (March 1999)
Springer Verlag; ISBN: 0387986324
 
David Gries was a nice guy, when he was younger ;-). I still remember his excellent Compiler Construction for Digital Computers. After than he participated in the creation of PL/C -- a great compler for an education dialect of PL/1(much better than Pascal) and wrote a decent book about the language. But then he wrote really weak fundamentalist-style book The Science of Programming (Texts and Monographs in Computer Science) and I lost my respect for him.  Lets hope he did not spoil the book as an editor.
??? [ June 14, 1999] The C Unix Programmer's Guide ~ Usually ships in 24 hours
Jason W. Bacon
Amazon price: $65.00
Paperback - 653 pages (March 1999)
Acadix Software & Consulting; ISBN: 0967059607
Amazon.com Sales Rank: 86,158
Definitely overpriced.
 
[ June 14, 1999] Unix System Programming : A Programmer's Guide to Software Development
Keith Haviland, et al / Paperback / Published 1999
Amazon price: $36.95
Prev version was published in 1988 !! Exectly like Fortran 88 and 99 standards ;-)

See Also


Classic

***** The C Programming Language : ANSI C Version
Brian W. Kernighan, Dennis M. Ritchie

Classic book. For example, the very first exercise given is to print "hello, world" became a standard way of introducing new language in a programming books.  Not for the beginner, you need to know well at least one other language before reading this book. Might serve as a quick reference too. Written when memory was expensive, hence it takes all the short cuts to save storage. Therefore some examples (hort implementation of famous UNIX commands) are no longer represent recommended way of coding them.

 
It shows its age. In 2003 one can see weaknesses and their tool-oriented approach looks somewhat naive in view of existence of scripting languages like Perl, Python, TCL, etc.  Still it is a valuable book that somewhat illuminated (sometimes questionable) tradeoffs in designing C as a hybrid of BCPL and PL/1.  From the point of view of PL/1 heritage especially problematic was C treatment of strings (downgrading them into a library) and you can find some interesting info about this design decision in the book. The exercises are challenging and some of them are pretty creative, reminding The Art of Computer Programming  (there is a "solutions book" by different authors)

Here are one of Amazon.com reviews:
4 out of 5 stars The classic text, but there are better books., August 28, 2003
 
  Reviewer: Eric Kent (see more about me) from LA, CA
Yes, this is the classic text on C, but in 2003, there are better books.

If you want to know what went on in the designers mind in the creation of C, get this book.

If you need a tutorial about C, there are better choices.

 

4 out of 5 stars not the best, June 26, 2002
 
  Reviewer: A reader from New York, USA
with all due respect to K&R, i have to point out that there are better C programming books for beginners. <C a software engineering approach>(3ed), is a good example: it does a better job cleaning the dusty corners of C.

for this K&R's book, one thing i don't understand is that they seem to be obssessed with using string processing functions as examples. the matter of fact is, the C standard library does a lousy job processing strings: most of the string processing functions are type unsafe and tedious to use.

as for why C is so popular (hence this book), one is because C is relatively easy to learn and use, compared with C++, ML etc. the other reason is that unix and most unix libraries are written in C. but with virtual machine around the corner, it's time to move one level up. even though i use C all the time for writing compilers and kernel drivers, other languages like java/ ML/ python/ lisp are much more fun to use.
 

5 out of 5 stars Great Reference Book, Beginners Look Elsewhere, October 30, 2002
 
  Reviewer: HiRez (see more about me) from California, USA
"The C Programming Language" is NOT a book for beginning programmers, or for those very new to C who wish to learn gradually. It is not much of a tutorial. It's written for either very experienced programmers coming from other languages, or for those who know the basics of C and need a reference book. The descriptions and examples are terse, and the learning curve is steep. Once you are comfortable programming in C, however, this is the one book you want next to you (and it will likely be the ONLY reference book you will ever need for straight ANSI C). Since it was written by the original authors of the C language, it's hard to imagine anyone being more authoritative on the subject, and although there's little hand-holding, it is well-written and pleasant enough to read through cover-to-cover. When you're ready to really get your hands dirty, do not hesitate to order this book.
 
 
4 out of 5 stars A great Bible. Not a great tutorial., June 28, 2003
 
  Reviewer: casenagi (see more about me) from Peoria, AZ. United States
I got this book and tried to use it to learn C. I got very frustrated and eventually went out and bought "C by Example" which is more of a beginners type book. After getting my feet wet with the basic concepts I came back to this book and could actually use it to learn from.

If you have no programming experience than I do not reccommend this as your first book. Get a more introductory book first and then dive into the K&R book.
 

 


Bad Books

[alt.comp.lang.learn.c-c++] - FAQ list

16: Why do many experts not think very highly of Herbert Schildt's books? A good answer to this question could fill a book by itself. While no book is perfect, Schildt's books, in the opinion of many gurus, seem to positively aim to mislead learners and encourage bad habits. Schildt's beautifully clear writing style only makes things worse by causing many "satisfied" learners to recommend his books to other learners. Do take a look at the following scathing articles before deciding to buy a Schildt text. http://www.lysator.liu.se/c/schildt.html http://herd.plethora.net/~seebs/c/c_tcr.html The above reviews are admittedly based on two of Schildt's older books. However, the language they describe has not changed in the intervening period, and several books written at around the same time remain highly regarded. The following humorous post also illustrates the general feeling towards Schildt and his books. http://www.qnx.com/~glen/deadbeef/2764.html There is exactly one and ONLY one C book bearing Schildt's name on its cover that is at all recommended by many C experts - see Q 25.


Introductory-I (High school/community college level)

 C by Example

Beginning C

 Absolute Beginner's Guide to C C Programming in 12 Easy Lessons

 

**** C by Example ~ Newer edition (I own older 1993 edition of the book)
Amazon price: $19.99
Paperback - 500 pages  (December 13, 1999)
Que Education & Training; ISBN: 0789722399 ;
Avg. Customer Review: 3.5 out of 5 stars
Number of Reviews: 13

Very readable and nice introduction to C, but no WEB site and no e-text. Contains more material than Absolute Beginner's Guide to C (see below). Decent use of figures and flowcharts. Probably one of the best illustrated C book that I saw (I still want to take a look on  the Illustrating C, though ;-). Small but important from teaching standpoint fact: the author always use brackets in if statements.  The book was typeset and organized well. Each chapter contains summary and exercises. I personally prefer having an abstract before each chapter, but summary is also important. 
 
In this edition you can download all examples publisher page( Que.).
 
Shortcomings: Explanation of files and string operations is not that great.
 
It is interesting to note that Greg Perry is one of the most prolific computer book authors I know and he wrote/coauthored more then two dozens of books !!!  It seems that he published his first book in 1984 Graphics and Sound on the Commodore 64 (Book and 48K Disk).
 
 
**** Beginning C
Ivor Horton / Paperback, 525pp / Published September 1997  (2nd edition)
Amazon price: $23.96 ~ You Save: $5.99 (20%)
It is a good book for beginners and its pretty cheap. It's not great but still good in explaining pointers (some good information about this topic is available from the WEB -- see my C links). The book contains summaries, but does not contain questions or exercises, so it is less suitable than  C by Example for academic environment. Examples are good and tests can be downloaded the Wrox Web site.  The author use the main sequence loops(ch4)-arrays(ch5)- strings(ch6)-pointers(ch7) which is a pretty reasonable approach for teaching the language to a beginner.  Pointer examples 7.1, and 7.8 are a really excellent graphical explanations of "what is what".
 
The shortcoming that I see is that the chapter on pointer can have several more typical examples. The chapter on string manipulation is really weak -- for example the author do not mention such important functions as str2cpy.
For an introductory book it's rather small book (only 525 pages). This book can be considered as the author third book on C (the first one was in 1994). See also the author interview  to amazon.com (it would be interesting to ask him why he does not consider illustrations as an important method of making programming more approachable for beginners ;-):

I think programming is easier that it looks to folks who haven't tried it, and I enjoy trying to make programming more approachable for beginners. My primary interest and motivation in writing lies in finding better ways to communicate the ideas -- to simplify them as much as possible, and to put them in an understandable context. I get a real kick out of every reader that writes in to Wrox saying they thought one of my books was great.

Ivor Horton authored 3 other books on C and the only problem with him that he managed to published three more books the same year ;-).  Here is one review from the Amazon.com with which I mostly (I do not agree with his assessment of pointer-related chapter) agree:

tony@pittarese.com from Pensacola, FL , November 10, 1998
Generally a good beginning text
I've taught C classes using this as the textbook and find the students generally receptive to the book. As a previous reviewer mentioned some of the things the author does (such as define main with a void return type) are not correct, and he picks up the pace of coverage significantly in difficult areas such as pointers.

If you do buy this book, buy a good reference book such as "The C Programming Language" by Kernighan and Ritchie to go with it. Many library functions are not well documented in the Horton book.

If you know nothing about C and want to pick it up on your own, this book is one of the best I've seen at making it approachable. Its few errors are just (relatively) minor annoyances.

***+ Absolute Beginner's Guide to C
Greg M. Perry / Paperback / Published 1994
Amazon Price: $17.60 ~ You Save: $4.40 (20%)
This book competes with Teach Yourself C in 24 Hours  If you've never programmed in C before, this is a good starting point, but probably C by Example is better. The book is friendly, clear and what is most important for high school it is not boring. Decent typographical quality, but again C by Example is better. The author introduced concepts of maps as a substitute for summary before each chapter -- a very interesting innovation. Maps contain a very useful information.  

This is an excellent book for a 15 years old. BTW pretty large subset of C is covered... More advanced and more suitable for high school is C by Example that was published 1993.


??? C Programming in 12 Easy Lessons ~ Usually ships in 24 hours
Greg M. Perry / Paperback / Published 1994
Amazon price: $31.99 ~ You Save: $8.00 (20%)
CD provides code and the genuine Turbo C++ 2.0 compiler. At least one reader got it with MS VC++ CD ROM. one interesting review from Amazon.com:

NO LONGER A BEGINNER
I read this book, and shortly after began my own little business of C/C++ programming! This book is excellent, and if you use it right, can help you in many ways!


Introductory-II (University level)

 C: Step-by-step

 A book on C

Beginning C
 
**** C : Step-By-Step (Computer Science Series) 
Mitchell Waite, Stephen W. Prata / Paperback / Published 1989
Amazon Price: $23.96 (20% discount)

Paperback - 629 pages (April 1989)
Sams; ISBN: 0672226510 ; Dimensions (in inches): 1.10 x 9.17 x 7.39
Amazon.com Sales Rank: 106,932
Avg. Customer Review:
Number of Reviews: 2

I recommend this as your first book for the university-level course. It is reasonably priced and pretty recent. A very nice presentation. Designed for a 1- or 2-semester course. Includes exercises and quizzes. Instructor's guide is available. There is also C++ book of the same authors C++ Primer Plus that with some reservations can also be used as an intro book.

Table of Contents

Preface
Acknowledgements
Trademarks
1 C and Programming 1
2 Introducing C 21
3 Data and C 45
4 Character Strings and Formatted Input/Output 77
5 Operators, Expressions, and Statements 113
6 C Control Statements: Looping 151
7 C Control Statements: Branching and Jumps 197
8 Character Input/Output and Redirection 239
9 Functions 273
10 Arrays and Pointers 313
11 Character Strings and String Functions 353
12 File Input/Output 395
13 Storage Classes and Program Development 429
14 Structures and Other Data Forms 465
15 Bit Fiddling 507
16 The C Preprocessor and the C Library 529
App. A - Additional Reading 569
App. B - C Operators 571
App. C - Basic Types and Storage Classes 579
App. D - Expressions, Statements, and Program Flow 583
App. E - ASCII Table 591
App. F - Standard I/O Functions (ANSI C) 595
Answers to Odd-Numbered Review Questions 599
Index 617
***+ A Book on C : Programming in C   
by Al Kelley, Ira Pohl
Amazon Price: $39.95
Paperback - 726 pages 4th edition (January 1998)
Addison-Wesley Pub Co; ISBN: 0201183994 ;
Amazon.com Sales Rank: 9,142 
Avg. Customer Review: *****
Number of Reviews: 16

You can read an interview with Ira Pohl.

Good but expensive... It is a university type book and not very suitable for high school students. If you solve the exercises (and they are doable) you will be on a decent level of mastering the language (libraries are quite a different story). Only 593 pages devoted to C and that diminish the value of the book -- the second part of the book is essentially useless and diminish the value -- there are plenty of C++ and Java books on the market. On a positive side it provides the useful introduction to pointers and pointer arithmetic. The examples are well integrated into the flow of presentation, and it is well indexed (it is an excellent reference book).

 As you can see from Amazon.com rank it's very popular...

lore. There is a very minimal amount of code in the book. Learning the correct way to free a singly-linked list and how to declare arrays and function pointers is by no means in the "expert" category in my opinion. Much of the material in this book is presented in a first semester course on programming and all of the topics that are superficially covered in this tiny book are better explained in other books.

I found about 4 to 5 pages of useful information in the book and the rest was just fluf. If you want to learn about operating systems, assembly language, pointers and dynamic memory management, data structures, or algorithms, then get books that deal with topics explicitly. You wont find that kind of information in this little book. This book concerns itself with topics that show how to unscramble poorly written code like: z = y+++x; I dont know anyone who writes code like that!

If your still having trouble with arrays and pointers, then this book can be of help, otherwise I dont think the price of this book is justified.

Mike Vanier (mvanier@bbb.caltech.edu) from Pasadena, California , March 18, 1999 ****
Generally excellent, but marred by lots of typos
This book is an extremely valuable discussion of a variety of topics about the C language that are poorly described in other books, ranging from how to read complicated typedefs to how your C program compiles and runs on the computer. The material on C++ is quite dated (the book dates from 1994). However, the most annoying thing is the large number of typos. There is a whole figure missing on one page, and there are numerous smaller typos (mostly obvious) throughout the text. There are two big errata sheets on the author's web site for prevt the author's offer to pay $1 for mistakes in the book reported to him DOES NOT apply to typos, only to technical corrections.

nonblonde5@aol.com , September 11, 1998 *
Dark star: Burned out Slag!
I you really find anything in this book very helpful you'll never make it as a C programmer. Any reasonablly bright programmer can figure out everything in this book fairly quickly. If you want to learn C study the standard library and emulate it. Pay attention to th details, to the way pointers are used, etc. Learn tactics to eliminate any habitual errors you're making and read the code listings in magazines. If you run accross mangle code like this book deciphers, fire the programmer or find another job! Professionalism prohibits one from writing obscure and ill-convieved code such as this. There is one absolute truth in programming, badly written code stems from poorly understanding the problem. (Not from the language you're using!) Study the problem until you understand it well enough to explain it easily to someone else and your code will magically become simple, fast, efficient and elegant. If you want a good laugh buy a comic book, its cheaper and more targeted to that end.

*** Programming in ANSI C ~ Usually ships in 24 hours
Stephen G. Kochan / Paperback / Published 1994
Amazon price: $23.96 ~ You Save: $5.99 (20%)

Solid but there are better general (university level) books on C. Often can be bought with 50% discount.
**+ C : A Software Engineering Approach ~ Usually ships in 24 hours
Peter A. Darnell, Philip E. Margolis (Contributor) / Paperback / Published 1996
Amazon price: $44.95
Contains good introduction to pointers...
Practical C Programming (Nutshell Handbook)
Steve Oualline / Paperback / Published 1997
**+ C by Discovery
L.S. Foster / Textbook Binding
Amazon Price: $35.00 (Special Order)

Expensive university style book. The author does not have a real grasp of the language as a whole, so the language is presented as a sequence of non related elements that one needs to know.  Very dull, boring with vulgar and non-related to topics illustrations. Very bad typographic quality. IMHO not suitable for self-study. Probably can be OK in a university environment with a strong professor, but even in this case you better buy another one.


C on Unix

The C-Unix Programmer's Guide
by Jason W. Bacon
 
  Preface  
Ch. 0 Starting from Zero

1

Ch. 1 An Overview of C

5

Ch. 2 Lexical Elements, Operators, and the C System

69

Ch. 3 The Fundamental Data Types

107

Ch. 4 Flow of Control

147

Ch. 5 Functions

197

Ch. 6 Arrays, Pointers, and Strings

245

Ch. 7 Bitwise Operators and Enumeration Types

331

Ch. 8 The Preprocessor

365

Ch. 9 Structures and Unions

407

Ch. 10 Structures and List Processing

447

Ch. 11 Input/Output and the Operating System

493

Ch. 12 Advanced Applications

555

Ch. 13 Moving from C to C++

593

Ch. 14 Moving from C to Java

625

App. A The Standard Library

641

App. B Language Syntax
  • Paperback: 670 pages ; Dimensions (in inches): 1.50 x 9.75 x 7.00
  • Publisher: Acadix Software & Consulting; (April 1999)
  • ISBN: 0967059607
     
  • Average Customer Review: 3.87 out of 5 stars Based on 8 reviews.
     
  • Amazon.com Sales Rank: 134,232  
 
0 out of 5 stars Why I wrote "The C/Unix Programmer's Guide", April 8, 1999
 
  Reviewer: the author
When I started teaching C at UW-Milwaukee, students would often come to me with simple questions about library functions, using "make", and the like. Not being one to give up answers easily, my first response was usually "did you check the man page?" In response, students would often say things like, "yes, but the language it's written in isn't offered at this school". After a short time, I began to think, "Hey, wouldn't it be nice if someone wrote a book about this stuff?". We looked around, couldn't find one, and resigned ourselves to using generic C books, along with two additional recommended books, which were grossly underutilized, and really cut into the students' entertainment budget. A few years later, I thought to myself, "Hey, wouldn't it be nice if someone wrote a book about this stuff?" (Dejavu!) Then it hit me that SOMEONE had to take action, and that's how "The C/Unix Programmer's Guide" came to be.

I've programmed on many different platforms over the past 18 years, and C and Unix provide the most enjoyable environment I've found. I hope you'll find this book helpful in getting you into Unix programming, so you can share in the experience!
 

 
 
Reviewer: ANNMARIE K MANZITTI from Saint Clair Shores, MI USA
The C Unix Programmer's Guide was the only book I could find that provided useful background information as well as thoughtful, applicable coding examples. What impressed me most is the fact that all the information found in the man pages on C as well as further insight was combined into an easily readable and searchable format. As a student of computer science, I was familiar with Borland/Microsoft C++, but I had no previous experience with C or Unix. This book helped me get an A (one of three) in Operating Systems! While my classmates struggled on assignments, I was able to find exactly what I needed to complete the assignments on time. I truly believe that without this book I would not have performed nearly as well. Thank you Mr. Bacon for writing such a great book!
 
 
Sams Teach Yourself C for Linux Programming in 21 Days
by Erik de Castro Lopo, Bradley L. Jones, Peter G. Aitken
Amazon price: $29.99 Availability: Usually ships within 24 hours.

Table of contents
 
Paperback - 768 pages 1 edition (December 22, 1999)
Sams; ISBN: 0672315971 ; Dimensions (in inches): 1.80 x 9.08 x 7.40
Amazon.com Sales Rank: 32,038
Avg. Customer Review: *****
Number of Reviews: 2
 
***** Right on Target March 10, 2000
Reviewer: Geoff Thornton (see more about me) from Oakey, Australia
I have been learning C++ for a while on a linux platform, and started to look at some C stuff in the kernel and other programs to broaden my knowledge. I saw that that although C++ is derived from C it doesn't necessarily do stuff the same way, so I picked up this book. It was right on the mark! and explained some peculiar C stuff right away and in a good easy to read style. It consolidated my knowledge well an added to my understanding, particularly with pointers to pointers by including well thought out text and pictures well done. It also provides a good tutorial into basic GCC usage and the peculirities of programming for Linux, I recomend it.
***** EXCELLENT TUTORIAL February 25, 2000
Reviewer: David van Popering (see more about me) from Long Island
Aside from teaching myself BASIC on my Commodore 64 way-back-when...this is the first programming language I have learned and I owe it all to this book. It is fantastic. Step-by-step, they take you from defining/describing what C is, to writing real-world programs.

You would do well to ignore the ignorant reviewers who complain about the title "21 days" (or 24 hours). These people are only looking for excuses. All the 'Teach yourself in 21 Days' books should be seen as 21 LESSONS (and the 24 hours as 24 LESSONS). Could I do it in 21 days? Yes, following the book's plan I could. Easily. But, I have a full time job, family, etc. and these factors can NOT be held accountable by the authors. 21 Excellent Lessons.

Days, Hours, months...whatever YOUR pace is, this book does an EXCELLENT job of teaching you what you need to know to write real-world, practical C Programs. I first learned Unix with using of the 'Teach yourself' books and have been a devoted reader ever since.

Some days I have time to go through 2 lessons while other times a single lesson may take me a day or 2 due to time constraints. Bottom line: I LEARNED C FROM THIS BOOK AND YOU CAN TOO.

I am NOT a computer science major. I am a self-taught Linux hacker who never wrote a line of code (except for a little BASIC 15 years ago) and I am now writing C code and tinkering with Open Source programs. (I'm running Slackware and Debian, if you were wondering).

Other tutorials are fine but many assume you are using Windows 95/98. "C is C is C", but this book is written in 'Linuxland' for Linux users; GCC is carefully explained and used here. I use and love the Nedit editor which was one of several recommended in the book.

New to C? Or want a fresh start from the beginning while in a Linux environment? GET THIS BOOK and digest all 21 LESSONS at your own pace!


Glibc : A Comprehensive Reference to Gnu/Linux Libc
Jeff Garzik / Paperback / Published 2000
Amazon price: $40.00 (Not Yet Published -- On Order)
 
**** Advanced Unix Programming ~ Usually ships in 24 hours
Marc J. Rochkind / Paperback / Published 1986
Amazon price: $28.76 ~ You Save: $7.19 (20%)
 
**** Unix Systems Programming for Svr4 (Nutshell Handbook) ~ Usually ships in 24 hours
David A. Curry / Paperback / Published 1996
Amazon price: $27.96 ~ You Save: $6.99 (20%)
 
??? [ June 14, 1999] The C/Unix Programmer's Guide ~ Usually ships in 24 hours
Jason W. Bacon / Paperback
Amazon price: $65.00
 
[ June 14, 1999] Unix System Programming : A Programmer's Guide to Software Development ~ Usually ships in 24 hours
Keith Haviland, et al / Paperback, 2-d edition / Published 1999
Amazon price: $36.95
Previous  version was published in 1988 ! Candidate for Guinness record -- 11 year since the first edition.

It Would be Interesting to Read the Following Books

??? C for Yourself : Learning C Using Experiments ~ Usually ships in 24 hours
Richard P. Halpern / Paperback / Published 1997
Amazon price: $36.00
Interesting approach which to a certain extent (and with certain success) was  used by Bruce Eckel in his Thinking in C++ and Thinking in java books...
??? Illustrating C : (Ansi/Iso Version)  
Donald Alcock / Paperback / Published 1994
Amazon Price: $24.95
Format: Spiral bound paperback, 2nd ed., 222pp.
ISBN: 0521468213
Publisher: Cambridge University Press
Pub. Date: June 1994
So far I saw only one decently illustrated C book -- C by example. By there should be C -books for the visual thinker like me. I believe a picture is worth a thousand words. In this book drawings are used to illustrate important concepts and constructs. Includes complete list of ANSI standard library functions with prototypes and descriptions. Good examples of linked lists, b-trees, stacks, etc. From the reader review:

I got an "A" in my C course. And I used 5 text books. The ONLY textbook that really helped was Alcock's "Illustrating C". It uses diagrams in a truly "revolutionary" way that really helps understanding. It's like moving from black and white to colour. The intention is to provide the student with a set of course notes, complete with instructor black-board diagrams -- only better. It really works. It's enjoyable. Did I mention I got an "A"? I hope that other textbook writers pick up on Mr. Alcock's unique style! Bravo

Table of Contents

Preface
1 Introduction 1
2 Concepts 11
3 Components 27
4 Control 51
5 Organization 65
6 Pointers, Arrays, Strings 79
7 Input, Output 107
8 Structures, Unions 125
9 Dynamic Storage 143
10 Library 163
11 Summaries 195
Bibliography 209
Index 210

Advanced

(see also Tcl/tk books -- Tcl has excellent interface with C  (that can be viewed as an advanced C library) and is the best tool to use in complex projects -- IMHO combination of C and TCL in many cases is much better and more powerful that C++)

***** C Interfaces and Implementations : Techniques for Creating Reusable Software (Addison-Wesley Professional Computing Series)
David R. Hanson / Paperback / Published 1997
Amazon price: $42.95
Average Customer Review: 5 out of 5 stars
TOC

Preface

Home page for C Interfaces and Implementations

Chapter 3 Atoms

This is the most impressive advanced C book. Devid Hanson is the author of  lcc A retargetable C compiler (with Chris Fraser, the author of copt, a simple, retargetable peephole optimizer).

Please visit the author Home page

5 out of 5 stars Probably the best advanced C book in existance...
Reviewer: tqbf@pobox.com from San Francisco, CA      August 4, 1999
Clearly written and well organized, this book presents more than 20 _highly_ useful library interfaces for containers, string management, mathematics, and memory management. There isn't a line of code in the whole book that you couldn't take and use, verbatim, in a project today --- after reading this book, you'll probably never have a compelling reason to write a string library or a hash table interface again.

More importantly, though, each example library illustrates ways to effectively design consistant and useable library interfaces, from generic ADTs to system service wrappers. After reading this book, you'll not only have an arsenal of useful code to leverage, but also a good understanding of how to design clean, modular, reuseable components for your application.

Hanson's C code is extremely clear and concise. Even if you've been programming professionally for a long time, you are likely to pick up a useful technique or two just by reading the source code in the book. If you're not very experienced, you will learn about C programming idioms that will be valuable to you in future work.

I really like how this book, and Hanson's other book ("A Retargetable C Compiler: Design and Implementation") are put together. Hanson employs Literate Programming techniques to weave the code he's discussing together with his discussion. This makes it very simple to track what portions of the code are being talked about at any point

 5 out of 5 starswonderful C book.
Reviewer: Defang Zhou (dzhou@zoo.uvm.edu) from Vermont, USA      July 15, 1999
This book is a highway leading you form toy project to real-life project. The author told you exactly what you want when you programming. The book detailed a lot of tricky stuff which would haunted you for a long time before you read this book.

C Unleashed (Unleashed)
by Richard Heathfield, et all
Amazon Price: $49.99
Paperback - 1344 pages Book & Cd edition (July 7, 2000)
Sams; ISBN: 0672318962 ; Dimensions (in inches): 2.20 x 9.10 x 7.34
Amazon.com Sales Rank: 699,756
 
This huge (1400 pages!) intermediate/advanced book on C covers wide range of topics including algorithms. Can be used in Advanced C courses. Should not be your first or only book.  You need some understanding of C to benefit from the book. It covers pretty advanced things. It reminds that C is a simple but extremely powerful language and that in certain areas it can give any other language including Java a run for the money ;-)

I think this is one of the best books in Sams Unleashed series and one of the most important C books published recently. It’s really well written and comprehensive.

Unfortunately amazon.com does not provide the table of contents for the book, which is pretty impressive.  Here is a very compressed TOC:

Part I: The C Language Revisited ..... 1 1: C Programmer Unleashed! ..... 3 2: Holy Wars: Programming Standards-Causes and Cures ..... 21 3: Optimization ..... 75 4: Dealing with Dates ..... 113 5: Playing with Bits and Bytes ..... 131 6: Offline Data Storage and Retrieval ..... 161 7: When Things Go Wrong: Code-Mending ..... 203 8: Managing Memory ..... 259 9: Simulations and Controllers ..... 299 10: Recursion ..... 315

Part II: Data Organization ..... 341 11: Simple Abstract Data Structures ..... 343 12: Binary Search Trees ..... 455 13: Rapid Sorting Techniques ..... 507 14: Tries ..... 571 15: Sparse Matrix ..... 591 16: Working with Graphs ..... 641

Part III: Advanced Topics ..... 709 17: Matrix Arithmetic ..... 711 18: Digital Signal Processing ..... 759 19: Expression Parsing and Evaluation ..... 839 20: Making Software Tools ..... 911 21: Genetic Algorithms ..... 977 22: Cross-Platform Development: Communications Programming ..... 1001 23: Writing Common Gateway Interface (CGI) Applications in C ..... 1053 24: Arbitrary Precision Arithmetic ..... 1087

As one can see the book covers a wide range of topics including such forgotten in programming things as optimization of code and  expression parsing and evaluation. Some topics like sorting, searching, tries, graph algorithms actually belong to a typical algorithms and data structure course. But the book covers them much more realistically.  Examples are written in a very decent style using the latest version of the language and are quite useful.

And for such amount of information the price is very good.

All-in all this is a rare solid C book in the current C++ oriented world and I highly recommend it for developers and university students.

Book Description

Covers the recently ratified new C standard - C9X

Focuses on portable programming, providing code that is useful across all platforms, including mainframes

CD-ROM contains arbitrary precision math and matrix math libraries, tree and sorting libraries, debugging trace routines, Julian date conversion routines, memory allocation tracking source code, DJGPP compiler and a draft of the new C9X standards

Book Info
Presents focused explanations of the core features and complexities of C, including optimization and performance, handling I/O streams, managing memory, debugging and diagnostics, trees and advanced data structures, matrix arithmetic, digital signal processing, encryption, and more. Softcover.

 
***+ Practical C Programming (Nutshell Handbook) ~ Usually ships in 24 hours
Steve Oualline, Andy Oram (Editor) / Paperback / Published 1997
Amazon price: $26.36 ~ You Save: $6.59 (20%)
Paperback - 454 pages 3rd edition (September 1997)
O'Reilly & Associates; ISBN: 1565923065 ; Dimensions (in inches): 0.93 x 9.19 x 7.03
Amazon.com Sales Rank: 3,420
Avg. Customer Review: ****
Number of Reviews: 22
Fun to read.  Covers floating point numbers and their pitfalls. Non Unix related stuff is outdated and weak. Chapter about pointers in available online. It has very good graphic and generally can be considered as the best explanation of pointers on the WEB.  The source code is available on the publisher's Internet server. One of the best things about this book is the exercises that it gives, at the end of each chapter.

Table of Contents

Preface
I. Basics
1. What Is C?
2. Basics of Program Writing
3. Style
4. Basic Declarations and Expressions
5. Arrays, Qualifiers, and Reading Numbers
6. Decision and Control Statements
7. Programming Process
II. Simple Programming
8. More Control Statements
9. Variable Scope and Functions
10. C Preprocessor
11. Bit Operations
12. Advanced Types
13. Simple Pointers
14. File Input/Output
15. Debugging and Optimization
16. Floating Point
III. Advanced Programming Concepts
17. Advanced Pointers
18. Modular Programming
19. Ancient Compilers
20. Portability Problems
21. C's Dustier Corners
22. Putting It All Together
23. Programming Adages
IV. Other Language Features
A. ASCII Table
B. Ranges and Parameter Passing Conversions
C. Operator Precedence Rules
D. A Program to Compute a Sine Using a Power Series
Glossary
Index
4 out of 5 stars Very good, not perfect, July 23, 2000
Reviewer: Chad C. Keep from northglenn, co USA

The author has many good points about style, many valid. Except that I find his over use of comments unessicary, especially when commenting declarations of variables. Simply unneeded (most of the time) If you name variables correctly. While I definitely do not subscribe to the idea that hard code to write should be hard code to read. Some basic literacy, in common variable names such as I or j for integer counters. I am about Ѕ way though the book, I particularly liked chapter 7 (Programming process). My only other criticism of this good book, is it doesn't prepare the reader much to some of the common bad conventions and bad habits some people have, and likely will see. The book is pretty easy to read and it's a good beginner book, if not the preferred beginner book, just mildly over hyped. I learned some new things, a good read.
 
5 out of 5 stars The BEST C book this C programmer has ever read!, January 26, 1998
Reviewer: lpike@cybertron.com from Florida, USA

I own literally shelves full of C and C++ books, and I've been programming in C professionally for almost ten years. This is THE book to have on C. I insist that every junior programmer I work with has a copy! It addresses not only programming syntax but good software engineering practices, and it has the most realistic real-world types of problems I have ever seen. When he asks you to find the bug in a section of code, those are exactly the type of bugs I see in novice programmers' code again and again. C is not a language for people who need to be coddled, and this book doesn't hold your hand; it just gives you lots of great information on C and how to do good software engineering. If you are a serious C professional, you should own this book.

???? C & C++ Code Capsules: A Guide for Practitioners (Prentice Hall Series on Programming Tools and Methodologies)
by Chuck D. Allison 
In his review Stan Kelly-Bootle (skb@crl.com) -- a respectable author himself (of Understanding Unix and  The Computer Contradictionary fame) -- wrote: 

One of the best C/C++ books I've encountered. For a more detailed review, please see my Devil's Advocate column in UNIX Reveiw/Performance Computing Feb'99

**** Unix Systems Programming for Svr4 (Nutshell Handbook) ~ Usually ships in 24 hours
David A. Curry / Paperback / Published 1996
Amazon price: $27.96 ~ You Save: $6.99 (20%)
**** Unix Network Programming : Networking Apis: Sockets and Xti (Volume 1)
W. Richard Stevens;
Hardcover 

IMHO system programming now became to a large extent network programming

UNIX Network Programming: Interprocess Communications (Volume 2) -- W. Richard Stevens; Hardcover

 
**** Advanced Programming in the Unix Environment (Addison-Wesley Professional Computing Series) ~ Usually ships in 24 hours
W. Richard Stevens / Hardcover / Published 1992
Amazon price: $65.95
 
Practical Unix Programming : A Guide to Concurrency, Communication, and Multithreading 
Kay A. Robbins, et al / Hardcover / Published 1996
Amazon price: $56.00

Advanced C/Book and Disk
Peter D. Hipson / Paperback / Published 1992
(Not Available from Amazon)
Decent and can be bought with 50% discount or more from  deep discount bookstores...

Expert C Programming

by Peter van der Linden

3 out of 5 stars Interesting but not oustanding., July 30, 2003
 
  Reviewer: secretbearer (see more about me) from San Diego, CA United States
At first glance the book purports to be similar to other early Bell Labs books about C, specifically, "The C Programming Language", "The Elements of Programming Style", "The C Standard I/O Library", and (not bell labs but another great book) "C: A Reference Manual", etc.

However, the author suffers from being a compiler-writer who doesn't really understand the design philosophy of the C language. This is the same afflication that Bjarne Stroustroup and other language designers suffer from. For example, he complains that only 3% of switch statements in his own compiler have case statement fall-throughs, therefore "We conclude that default fall-through on switches is a design defect in C." (p. 38). This is a rant of a dangerous person. Two underlying concepts of the C language are, "No hidden instructions generated where I cannot see them," and "When in doubt, provide open operators for maximum expressiveness - do not restrict expressiveness". Just because this particular compiler-writer lacks the inventiveness to do interesting things with a switch statement he proposes to force his biases upon the rest of the world. I have seen and written macro libraries that allow you to suspend & resume function calls, and these libraries perform fall-through 100% of the time. Therefore, this book is in error and the author is a victim of his own lack of creativity.

Another thing I disliked was a tendency to try to impress the reader with irrelevant facts that are not germane to the subject, such as typos in the ANSI C standard or tired-out stories on how to burn out IBM PC displays. These things are irrelevant and do not belong within the book.

I recommend you check out the book from a library (as I did) and please do not waste your money on this book.

 


Style

***** The Elements of Programming Style ~ Usually ships in 24 hours
Brian W. Kernighan, P. J. Plauger / Paperback / Published 1988
Amazon price: $40.74 ~ You Save: $10.19 (20%)
This is classic book on programming style. Must have. See my classic bookshelf.
 
The Elements of C Programming Style
Jay Ranade, Alan Nash / Paperback / Published 1992
Amazon price: $23.96 ~ You Save: $5.99 (20%)

C Elements of Style : The Programmer's Style Manual for Elegant C and C++ Programs
Steve Oualline / Paperback / Published 1992

Reference

***** C : A Reference Manual ~ Usually ships in 24 hours
Samuel P. Harbison, Guy L. Steele (Contributor)
  • Paperback: 560 pages ; Dimensions (in inches): 0.83 x 9.28 x 7.04
  • Publisher: Prentice Hall; 5th edition (February 21, 2002)
  • ISBN: 013089592X
     
  • Other Editions: Hardcover (4th) | All Editions
     
  • Average Customer Review: 4.69 out of 5 stars Based on 26 reviews. Write a review.
     

    It might be a bad time for good reference books. I have found its index to be inadequate. One interesting review from Amazon.com states that it's a very difficult task to write a decent reference book -- you need to compete with web sites that have much better searching and hyperlinking than the book.

    Still  Guy Steele is a unique author and the book worth reading.

    5 out of 5 stars A reference + more, September 14, 2003
     
      Reviewer: Gerry (see more about me) from Perth, Western Australia
    My friend borrowed this book from me about two weeks ago and won't give it back, I have since turned to my left side over 20 times looking for it to no avail (serious). If I was to describe this book in one word it would be "Clean", everything in this book is just beautiful, from the ease of use, to the technical details, to even it's fonts and thickness of the pages, everything is so clean and precise that the book makes you want to read it and perhaps even keep it on a pillow next to you at night (but enough about my sheltered life).

    One thing that I did not expect before receiving this book was the amazing language overview that comes with the book, they could have sold the book with just that part and it would have still been great. The overview goes into great detail and is really good at pointing out things that other C books miss and the fact that the author is well versed on all the features of the latest C99 Standard adds even more to the wealth of information. My favorite part of the book is the part on the C Pre-processor, which had a great deal of information that I was not previously aware of.

    Apart from that, there is the reference side which has all the detail you could ever want in a standard library reference book, all in a very simple to search format (Oh yeah and I should mention, the index kicks ....).

    So long story short, if you want a single book that you can turn to for 99.9% of your standard C problems, divorce your wife and give that spot in your bed to "C: A Reference Manual (5th Edition)"... or 6th if it's out by the time you read this review.

    ps. If your looking for this book in a bookstore make sure the lady types in "C: A Reference Manual (5th Edition)" and not "See: A Reference Manual (5th Edition)", long story, I'll tell you another time.

    Here is counterview:
     

  • Despite the rave reviews, I found this book rather disappointing. It reads like the ISO/ANSI official language grammar, that is, JUST THE FACTS AND IN TECHNICAL TERMS ONLY, with very few examples of how to use the language constructs. If this is your only C reference, then your in for some long hours at the computer. I would only recommend this book if you have an additional C reference manual that shows examples of how to use a construct. This book only gives you the technical definition

    for the construct i.e. parameters and return values along with unnecessary technical jargon in 90 percent of the book.

    It is an ok REFERENCE book if you don't have the official ISO/ANSI C grammar lying around. But look elsewhere for how to use the grammar productions effectively!

    Here is another review that I got directly from a reader (it does not answers the question of closeness to ISO/ANSI official document raise in the prev review, though):
     
    I totally disagree on the reviews you quoted from Amazon.com. Don't forget this book is written as a reference manual. As such, it is assumed that the readers should have some fundamental knowledge of C. That is also why it is written the way it is.

    I have been using the 3rd edition of the book for quite a while now. Since buying the book, I have never had the need to turn to any other books. I think this book thoroughly deserves the rave reviews that it received. It certainly deserves more than the 3 stars you gave it.

    Like all C programmers, I keep a copy of K&R's C book on my bookshelf just in case. But I haven't turned to it since I bought "C : A Reference Manual".  It has been widely discussed on the Net about the K&R C book, and it is universally accepted as a very terse book - not very readable, especially for beginners. Written by the inventors of the language, of course it is
    natural to regard it as the definitive reference. But it doesn't necessarily make it a better book than the others. I think as a C book, it probably only deserves 3 stars!
    The Standard C Library
    P. J. Plauger / Paperback / Published 1991

    Amazon price: $53.00
    The GNU C Library Reference Manual for Version 1.09 Beta 
    Roland McGrath, Richard Stallman / Paperback / Published 1996
    Amazon price: $50.00
     
    The Essentials of C Programming Language (Essentials)
    Ernest C. Ackermann, James R. Ogden / Paperback / Published 1998
    Amazon price: $4.76 ~ You Save: $1.19 (20%)

    Pointers, Memory Management, Functions and Files

    [Reek1997] Pointers on C
    Kenneth A. Reek, / Paperback / Published 1997
    <4 out of 5 stars My 2nd C Book, November 13, 2002
     
      Reviewer: VANCE CHEN (see more about me) from Boston, MA
    After knowing the basics of C. It's my second C book.
    Generally, not suitable for "pure" novice without any programming experience, but if you want to know a little more about C or if you already have learned some other languages, you can try this book.

    Chapter 1~5:
    Introduce the essential concepts you have to know about C (data type, flow control, expression etc.) in great detail.
    I like chapter 3 most. It explains the concepts about scope, linkage, storage and the "static" keyword very clearly. (those are what confused me when I read my 1st C book)

    Chapter 6:
    A must read chapter, "pointers".

    Chapter 7~10:
    Covers functions, arrays, strings, structures etc. with pointer related issue.
    Those chapter will let you be more familiar with how to apply pointers on them.

    Chapter 11:
    Special topic on memory allocation. In normal C textbook you won't see a specific chapter dealing with this.

    Chapter 12, 13:
    Advanced pointer concepts with structures, functions including
    pointer to pointer, void pointer, pointer to function etc. Very important and useful contents.

    Chapter 14~18:
    I don't like this part. Even if those chapters cover the preprocessor, I/O, standard library, data structures, and runtime issue, the author doesn't give enough examples to illustrate them very well. For example in section 16.5, the author talks about the Signals (in standard library). However, he just gives the concepts and tells us how to use them but without A example!!!
    If you have dealt with OS, you should know signals are very important and never easy to handle. Without a example, how could readers understand the usage and the ideas for them.

    This is a very good book for sure.
    It points out the common programming error, tips and the differences between K&R C and ANSI C.
    However, the only thing I am disappointed with this book is "a good start, but not a very good end". Those latter chapters really show the concepts we need to know but without sufficient examples to demonstrate them out.

    Even if the title of the book is "Pointers on C", it doesn't talk about the pointer all through this book. Instead, it just puts more emphasis on pointers and teaches you C.
    5 out of 5 stars The best book on C in print, April 11, 2002
     
      Reviewer: Lee Carlson (see more about me) from Global Mathematics, Saint Louis, Missouri USA
    For those who need an up-to-date ANSI overview of the C programming language, this book would be an excellent introduction. Pointers are usually a stumbling block for those programming C initially, but the author does an excellent job of detailing the use of pointers in this book. The use of pointers dominates the entire book, and after studying it, readers will have a thorough, practical knowledge of how to take advantage of the performance power of C language, due mostly to its use of pointers. For those programming in a commercial/business environment, where coding practices are strictly enforced, this book would be a good desk reference, as the author includes discussion of sound programming practices throughout the book. The book would also serve well those involved in teaching C in the classroom, as it contains many exercises, ranging from very easy to highly advanced. And for those readers frequently facing legacy code in C, such as scientific programmers, the author cites the differences between the older "Kernighan-Ritchie" C, and the more modern ANSI C, the latter being used in the book. These differences are indicated in the margin of the book, and are of an enormous help for those who must take older code and get it to run on more up-to-date compilers.

    The author also endeavors to organize the C code for those who are going on to study C++ and the accompanying object-oriented approach to programming. In addition, he emphasizes how to write C code so as to make it more portable. For those writing commercial applications in C that must be used on different platforms, this is a very important issue of course. Particularly well-written is the author's discussion on the storage class of a variable, noting, for those such as I who are pre-disposed to using recursion, that the formal parameters to a function cannot be static if recursion is to be supported.

    The book is full of examples such as this that give readers insight on the workings of C that fit their particular programming style. He does discuss 'goto' statements in relation to function scope and in C statement structures, but, thankfully, recommends such statements never be used. He