Pointers and Functions

A pointer can also be declared as pointing to a function. The declaration of such a pointer is done by,

        int  (*func_pointer)();
The parentheses around *func_pointer are necessary, else the compiler 
will treat the declaration as a declaration of a function.

To assign the  address of a function to the pointer, the statement, 
        func_pointer = lookup;
where lookup is the function name, is sufficient.
In the case where  no arguments are passed to lookup, the call is 
        (*func_pointer)();
The parentheses are needed to avoid an error.
If the function lookup returned a value, the function call then becomes, 
         i = (*func_pointer)();
 If the function accepted arguments, the call then becomes, 
         i = (*func_pointer)( argument1, argument2, argumentn);
Back