You can create an array of pointers to functions.
To declare an array of function pointers, put the array dimension after the function pointer array name, for instance:
int (*pfunctions[10]) (int);
This declares an array, pfunctions, with ten elements.
Each element in this array can store the address of a function with a return type of int and a parameter of type int.
#include <stdio.h> // Function prototypes int sum(int, int); int product(int, int); int difference(int, int); int main(void) { int a = 10; // Initial value for a int b = 5; // Initial value for b int result = 0; // Storage for results int(*pfun[3])(int, int); // Function pointer array declaration // Initialize pointers pfun[0] = sum;//from ww w. ja v a2s . c o m pfun[1] = product; pfun[2] = difference; // Execute each function pointed to for (int i = 0; i < 3; ++i) { result = pfun[i](a, b); // Call the function through a pointer printf("result = %2d\n", result); // Display the result } // Call all three functions through pointers in an expression result = pfun[1](pfun[0](a, b), pfun[2](a, b)); printf("The product of the sum and the difference = %2d\n", result); return 0; } // Definition of the function product int product(int x, int y) { return x * y; } // Definition of the function difference int difference(int x, int y) { return x - y; } int sum(int x, int y) { return x + y; }