return_type (*variable_name)(arguments...) // function address named "binary_operator" // returns an int, and takes 2 int parameters int (*binary_operator)(int, int) // function address named "printer" // has no return, and takes a string, and a varardic argument list void (*printer)(const char*, ...) // function address named "function" // has no return, and no parameters void (*function)()