Array of function pointer : Function Pointer « Function « C / ANSI-C

Array of function pointer

Array of function pointer
#include <stdio.h>

int sum(int a, int b);
int subtract(int a, int b);
int mul(int a, int b);
int div(int a, int b);

int (*p[4]) (int x, int y);

int main(void)
  int result;
  int i, j, op;

  p[0] = sum; /* address of sum() */
  p[1] = subtract; /* address of subtract() */
  p[2] = mul; /* address of mul() */
  p[3] = div; /* address of div() */

  printf("Enter two numbers: ");
  scanf("%d %d", &i, &j);
  printf("0: Add, 1: Subtract, 2: Multiply, 3: Divide\n");
  do {
    printf("Enter number of operation: ");
    scanf("%d", &op);
  } while(op<0 || op>3);

  result = (*p[op]) (i, j);
  printf("%d", result);

  return 0;

int sum(int a, int b)
  return a + b;

int subtract(int a, int b)
  return a - b;

int mul(int a, int b)
  return a * b;

int div(int a, int b)
      return a / b;
      return 0;


Related examples in the same category

1.Implementing arithmetic and array functionsImplementing arithmetic and array functions
2.Pointing to functionsPointing to functions
3.Arrays of Pointers to functionsArrays of Pointers to functions
4.Passing a Pointer to a function
5.Function pointerFunction pointer
6.Function pointer 2
7.Function pointer: function call
8.Function pointer and use it call a function
9.Initialize the function pointer array