Definition:
A function pointer denotes a function rather than an object. It points to a particular type. The type is determined by its return type and the types of its parameters. That means the functions's name is not part of its type.
For example:
// declare a function of compares the lengths of two strings
bool lengthCompare (const string &, const string &);
// pf points to a function returning bool that takes 2 const string references
bool (*pf) (const string &, const string &); // uninitialized
Using function pointers:
pf = lenghtCompare; // pf now points to the function named lenghtCompare
pf = &lengthComare; // equivalent assignment: address-of operator is optional