The C Programming Language is not a beginner book. I would classify it as a reference for programmers. I don't know what book you should use, but, essentially the difficult thing to understand in C would be pointers. Probably the easiest way that people get the concept is by learning about arrays->accessing arrays with pointers. Then they see how it applies to char arrays (ie. strings for lack of a better term)->using pointers to loop through words.
It begins to make sense.
Once you get it, you begin to understand the difference between memory variables and how to accelerate your code by accessing memory locations directly.
I don't really know how much programming you know but the basics of it is pretty simple: declaring variables, declaring/using functions, and programming statements which make up the logic of your code (there are very few but the main ones would be: for, if, while, do while, and switch).
Most of computer programs perform operations in iterations (while/do while/for) while using logical evaluations (if/switch) on some type of variable to perform other iterations. The process is so simplistic when you think about it because when you get down to it the CPU is really just a complex thing comprised of simple electrical switches (on/off, or 1/0).
The thing is that it performs millions of these per second, so my best advice to a novice who wishes to become a programmer is to understand the boolean nature of computers and how to reduce complex logic into simple boolean logic as quickly as possible. That is the nature of pretty much every programming language.
The simplest thing I can say that C and C++ give you is accelerated access to variables by referring directly to memory locations to retrieve them, that is what makes the language so much faster.
Once you learn the basics of C, I would skip to C++ so that you begin to understand object oriented programming as all windowed systems use classes (which are basically structures which encapsulate functions and variables within itself to define functionality). That is, unless you are going to be writing low level stuff like media streaming algorithms or drivers (which actually access hardware components by memory addresses).
It is pretty difficult to explain.
Edited: I guess another interesting thing that people learn in C would be bitwise operations, though most people probably never use them, however, if you want to write games you will use them indefinitely.
I guess I'm not really much of a teacher.