>What is your favorite book as far as explaining all of this pointer/reference arithmetic?
The C++ standard. But, since it has a tendency to cause an aneurysm in the unprepared mind, The C++ Programming Language will suffice for typical use.
>pass by reference in its simplest form
*shudder* Please look over the FAQ before posting code again.
>I just tried your code in my VC5 compiler and didn't get any errors.
Try working with the memory back in main when f returns. You'll probably get a run-time error.
>I don't see why *& is used.
It saves you the clutter of having to use a pointer to a pointer.
>It looks sort of strange to me to.
It looks strange to me and I'm used to using it. If your background is in C then references will feel funny for a long time.