Function pointers are pointers that point to functions instead of data types. They can be used to allow variability in the function that is to be called, at run-time.
Name *name;
typedef Name *NamePtr;