For beginners wanting to learn C, I really recommend
The C Programming Language book.
That book is commonly known as "K&R", after the initials of the authors. The original version of K&R is very obsolete (don't even look at it, it will only confuse you). The version you linked to (called the ANSI version) is reasonable.
However, it is not intended to teach you how to program. It is very concise, very clear, and very accurate, but it assumes that you know the basic concepts behind programming, and in particular you know how to decompose a large problem (a big set of requirements) into the elements of programming (variable, for loops, if statements, read and print). And it won't teach that.
To use a cliched and old example: Imagine you are a programmer, and work for a company that bought its first computer. You are asked to implement "accounts receivable": A system that
- tracks what we (the company) have sold to our customers,
- that knows what invoices we have sent (perhaps because it prints those invoices itself, perhaps because it gets told whenever a bill has been created and sent to the customer),
- that is informed whenever a customer pays the bill,
- that sends payment reminders for customers who are behind on paying,
- that can immediately display the current outstanding balance per customer and what bills are to be paid,
- and that generates reports, for example weekly or monthly or for the quarterly report.
Now take all these requirements, and translate them into code. Here is a tiny piece of the code:
Code:
if (balance > 0.0)
printf("You owe use $%.2f, please send a check within 30 days.\n", balance)
else
printf("Your invoices are all paid, thank you.\n")
Now, to fulfill all the requirements above, you end up having to implement a very complex system. You need to think through data sources, output destinations (printed forms? e-mails?), error handling, recoverability (what if the data base is destroyed, how do you reload), and so on.
Old joke: Exactly the situation above, a company just bought a computer, and it hires a programmer to implement "accounts receivable". The programmer tells his manager that it will take 3 years. After 1.5 years, the manager decides to check in with the programmer, to see what progress has been made. The programmer is very proud: He has already created an editor, he's working on implementing "the great american compiler", he has plans for a database, and he expects to finish on time.
For people from a different culture: "the great american novel" is a two-level concept. On one side it is what every writer of fiction wants to create, the one novel that makes their mark on literary history, that makes them one of the great writers, instant nobel price candidate. On the other side, it is supposed to summarize the whole state of "america" and the experience of "americans" (however you want to define those words) into one book. Candidates for that novel have included: "The last of the Mohicans", "Uncle Tom's Cabin", "Great Gatsby", "Babbit", "Catch 22" and "Gravity's Rainbow". Today, I think you can only see the concept of "the great american novel" ironically.