C Programming Absolute Beginner's Guide (3rd Edition)
If your 12-year-old really wants to learn C for some reason, this may be a good place to start. However, if you're a high school student who has a background in another language, you may want a more advanced book. Write dynamic C programs without becoming a technical expert! This book is the fastest way to get easy with C, one incredibly clear and easy step at a time. You’ll learn all the basics: how to store, and display data, how to organize programs, work with variables, operators, I/O, pointers, arrays, functions, and much more. C programming has never been this simple! This book is absolutely phenomenal. The authors do stunning job explaining programming concepts clearly and concisely, step-by-step and without rushing.
C Programming : A Modern Approaches Purchase
The best book for C. But it is not just that. If you are new, it will help you think like a C language Programmer. It teaches good practices and habits, and explains some common data structures. It contains all knowledge for everyone that wants to start programming. Its covers almost all details of the C programming language. Paired with 21st Century C, you have all tools necessary to fully grok C programming and begin writing useful code. The book doesn't hold your hand but does provide a good depth of knowledge, clear examples, and challenging problems at the end of every chapter. This book is a valuable learning and referencing tool.
Head First C
Best book on programming, including the venerable “K&R”, follow a fairly predictable course through keywords, control-flow constructs, syntax, operators, data types, subroutines, etc. These venerable can serve as a useful reference as well as a fairly academic introduction to the language. On the other hand, this book takes a totally different approach. It teaches you how to be a real C Language programmer. It helps you understand the internals of memory. It teaches you how to invoke system calls, accomplish multi-tasking, reuse code, understand the compile-link pipeline, manage larger projects, and get comfortable in a Unix environment with concepts such as pipes, file descriptors redirections, and forks. These topics are not really part of the C language; but they're very much part of the required skill set for any C programmer. The book is also dedicated to tackling so many of the pitfalls, and points of confusion — that C students scratch their heads about — in the “sidebars” that fill the book. The result is a highly readable book that bundles in the knowledge from ~10 years of practical experience.
Expert C Programming: Deep C Secrets
This book is not really for beginners in C rather its more for the experienced C programmer. It contains the nuances of C and offers a historical perspective and after which the author provides a workaround, if applicable.
The C Programming Language
This book is the seminal definition of the C language. It is still (even the old edition) a great introduction to the C programming language. It is well written and especially accessible, given the rather cryptic nature of the C language. It does bother with helping to teach editor tools and compilers, or even basic programming concepts. This is a great book of programming languages had the same approach to teaching syntax and its use.