I originally started learning the C programming language several years ago in college and attempted to learn it on my own for a few years after that. I didn't get far, but I amassed quite a few books in the attempt. Later on I came across Thinking in C++ that recommended that readers unfamiliar with C go through the Thinking in C material.
I used it along with:
By the time I made it to the various types of pointers I was wide eyed and very unnerved. I wouldn't say I was lost exactly, but well roasted for sure.
While I have deep respect for professional C programmers and find the language interesting, I was glad to get back to learning C++ 1).
Various resources in no particular order (I'll eventually organize them)
Currently, I'm not attempting to learn this language. I'm focusing instead on C++. Many authors teach C++ from the perspective that C++ is simply an evolved C, and while that may be the case, C++ has evolved to where it's possible to leave many (if not all) of the C constructs behind.
With that said I will likely be returning to this language at some point as there are many libraries out there that are intended for C.
The descriptions are borrowed from the tool websites
C programming.