To learn C, even as a first programming language “C for Dummies” is brilliant. He even offered free extra chapters online because they wouldn’t fit in the two volumes (and claimed he wanted it bound sold as one book but couldn’t publish that). It’s what I learned from, and I’ve had offers from the big players with infamous hiring practices fresh out of school.
It does have some concepts that are widely applicable, too, but the focus is on learning how to make C go. Not how to make C go efficiently, not how to make sound architectural decisions (beyond a certain point). It’s a bit dated, with sample code that only runs in pure DOS with compilers using long-deprecated functions and formats that aren’t valid C99. But it does what it advertises and it does it well: read it and you will know C thoroughly (and have a very minor grasp on what C++ adds/changes) and will be able to understand strange edge-cases and and the strangest, most convoluted code; fake classes like a champ; understand common data structures and fundamental algorithms like quicksort. I have never found pointers in the least bit confusing; maybe I’m far more brilliant than these Internet people, or maybe this guy just explains it well. Or both. I think both :).
I would never claim that every, or most programmers should read this book. It’s not anything close to Code Complete in importance. But I would definitely recommend it for somebody trying to learn C, despite the datedness. And it’s far more entertaining than any of those other books.