The idea of function pointers is a bit of a trick, but the syntax is really simple. I hope this helps.
Code:
#include <stdio.h>
// You can technically get by without a typedef, but it's rough
// and noone does it in practice.
typedef void int_fn (int);
void print_as_digit (int i) {
printf ("%d\n", i);
}
void print_as_char (int i) {
putchar (i);
}
int main (void) {
int_fn * function_array[2];
function_array[0] = print_as_digit;
function_array[1] = print_as_char;
// Ok, function_array is now an array of function pointers.
// We call function pointers just like how we call functions.
function_array[0](64);
function_array[1](64);
return 0;
}