Let me start by taking issue with the author's Preface. He describes four groups of target readers. The first is beginners to programming who, he claims, increasingly find themselves in the situation of having to learn C as their first programming language... Where has the author been for the last five years? Java has almost wiped out the use of C for such purposes. I will live with his other three reasons but think he is stretching a little even with those.
Turn over the page and he lists four advanced subjects that his book should be a good precursor to. They are: Object-oriented C++ programming, Windows programming, System programming and Generating Pro-C database applications. That is arrant rubbish. Learning C as a precursor to C++ is like learning to sing solos as a precursor to playing a musical instrument in an orchestra - it can help in some ways but not much. No sane programmer would use C to program Windows (I assume from context that he means MS Windows), which is why the greatest impetus for learning bad C++ has been that group of products. I fully agree with the third case but I am a loss to understand why he missed out on writing drivers and writing embedded code. And I have to confess that I do not understand the fourth reason.
Also in this Preface he writes:
... will mainly require the index or reference section of this book and should use this book for what it is: a practical reference work.
So I tried to use it as reference. I wanted a list of keywords (I was trying to decide which ANSI C Standard the author was using). There are no entries under 'k'. I wanted a list of the standard header files. Nothing helpful under 'h' but under 's' I found an entry that directed me to page 269, the start of a chapter on Standard functions. However not only was there no list of the standard headers but there but the chapter only covers a small part of the Standard C library.
OK, I finally found what I was looking for on page 5 where the author writes:
The C language was standardised by ISO and ANSI in 1990 (with an amendment in 1995). The representation here relates to the ANSI standard.
In other words it was already two years out of date when the original was published in Germany.
The substance of the book is unimaginative, the exercises are hardly likely to enthuse and the book is littered with minor inaccuracies. Remember that the author explicitly states that this book is a reference book, so stating, as he does on page 30, that the range of
charis -128 to 127 is doubly wrong as the required lower limit is -127 and then only if
charis implemented as a signed version. Then we have such silliness as:
According to the Gregorian calendar (introduced from 1583, and adopted throughout Europe in 1752)...
That parenthetical comment could have been left out and thereby not expose the author's ignorance. He might want to plead a typo in that he intended to write 'by 1752' not 'in 1752'. However, even that would be wrong, as Russia did not adopt it till much later. You might think that I was just being picky but this kind of parenthetical erroneous comment is typical of the author's style.
There is nothing terribly wrong with this book but there is nothing to distinguish it from many others. I do not think it suitable for most of the groups the author claims to be targeting and I think his claim that the book is any kind of reference is entirely bogus. Though it is somewhat more expensive, The C Programming Language 2nd ed . would meet the needs of the target readership far more effectively (and note that I do not think K&R is suitable for programming virgins). The author and publisher have missed the boat. This book should have been published in 1992 when it would have been acceptable though still flawed. Today, a book with this style and objective should at least have the virtue of dealing with the current version of C.