After lots of use you will tend to remember the syntax, even if when starting out you just copy and paste code. I suppose the most important thing is understanding... That is, understanding all of the components and program flow so that you can build on basic templates (provided for example, in VC++), and being able to read and understand documentation (e.g. msdn) so that you can adapt what you need to. And, depending on what your using to code (i.e. an IDE), code completion will probably allow you to get by quite well. If you're using a text editor like VIM on the other hand, it really saves time to not have to look stuff up all the time.
I'm sort of anal in that I typically force myself to memorize mundane syntax before learning new stuff... And unfortunately, it's one of the shortfalls of C/C++. That is, the heavy(ier) syntactical requirements (it's all relative)... I love having to set up all the structures and pointers to structures and stuff just to get a simple working tree structure... /sarcasm.
My prof made a joke in class once when he was explaining code generation that went something like "... and so all you have to do is return a list that will represent a parse tree. In Scheme, just remove the commas from the pseudocode. In C.. write a few hundred lines of code. Then write a few hundred more to support it." :)
Edit: but basically, …