One of the standard conversions, in both C and C++, is the function-to-pointer conversion; when a function name appears in an expression, it can be converted into a pointer to that function. So:
foois equivalent to&foo*foois equivalent to*(&foo), orfoo**foois eqivalent to**(&foo), or*foo, orfoo
and so on.
This means that you can legally add as many * as you like before a function name without changing its meaning. There’s no reason to do that, though.