EDIT2: http://wiki.libsdl.org/moin.cgi/SDL_BlitSurface?highlight=%28\bCategoryAPI\b%29|%28SDLFunctionTemplate%29
JUST by looking from manuals you WOULD see that SDL_BlitSurface takes as parameters 4 pointers (or memory addresses).
SO, if you create a variable as "normal" it is task for the computer handle variable address. BUT if you want to pass an address of a single variable to function you need to use &-operator.
Of course pointers (like SDL_Surface's) are created as a pointer (like SDL_Surface * screen;) so that if you give variable name "straight" if will give the address that type of variable.