Which book to read to learn C?



I'm not sure how taking a C++, Java, or PHP class would somehow be less beneficial than taking a C course. All imperative structured languages contain almost exactly the same "design" principles. I'm not really sure what you mean by "all the style and structure stuff". The style and structure of a C program is almost identical to C++, which is very similar to something like Java or PHP. And truth be told, C sucks when it comes to style and structure. Don't take my word for it, take Fran Allen's.

To the OP:
There is one benefit and one benefit only from learning C this day in age (most professional programmers and C.S. professors would agree with this): memory management; malloc(), calloc(), realloc() and free() are the only reasons why you should even consider studying C. Since we're buried beneath abstraction layer on top of abstraction layer, most people these days don't even know how to use new() and delete(), let alone their C counterparts.

Since programs function in memory, I'd say it's very important to learn how to manage memory in C (if you're planning to become a programmer). Since you already have some experience with VB, C would be a great way to understand how VB was doing some of its magic.

But be warned: you won't use C for anything unless you do systems programming. So unless you write operating systems, virtual machines (bytecode interpreters), or embedded applications, 99.99999999999% of the time C is not the right tool for the job.

Like other people have suggested, the K&R book is your best bet for a comprehensive and complete guide. Good luck!

the right answer.

and trust me, using C for anything web related other than building the google search engine or mysqld (read: shit you are probably not doing) will be a huge exercise in wasted time. If you want to learn how to program up one level from assembly, C is great. If you want to get shit done, C is not your friend.