1) Yes, it's both a pointer and a function.
2) Yes, that's the syntax for declaring a function pointer.
3) Yes, that's a void pointer. They're very useful for passing memory addresses without a type.
Like was suggested by @user2485710 check out this tutorial on function pointers.