1. There is a "book recommendations" thread in the C and C++ forums.
2. gcc is a good compiler, it's free and available for many different OS's - for windows you'd want to get gcc-mingw. If you want a full IDE, you can get Code::Blocks. For windows, there is also MS Visual Studio. It has some funny ideas on "standards", but otherwise a good compiler.
3. The www.cprogramming.com/tutorial is a place to start. Other than that, you'd better be very specific - there is far too much available on the web to list in one post.
There is also a wiki page maintained by some of the members here:
http://apps.sourceforge.net/mediawik...itle=Main_Page

4. Yes, that's the hardest part. The best likeness is "learning to drive". You need to practice, practice and practice. Do not expect to be able to write a full application in a couple of weeks - you may possibly be able to learn most of the language in a couple of weeks, but it takes a lot of practice to learn how to solve problems. In fact, a lot of posts here are simply peopel who can not read and understand their own code.

You will have to study "pointers" a lot, because it is a basic concept that is:
a. pretty hard to grasp to begin with.
b. very important in C and C++.
c. one of the main building blocks for a lot of advanced techniques (linked lists, binary trees - if you don't know what that means, don't worry, you'll get to that later).

--
Mats