アットウィキロゴ

関数を指すポインタ配列


2つのint型配列に対し、加算・減算・乗算・除算を行う関数をそれぞれ用意し、そのアドレスをポインタ配列に設定しておく。

#include <stdio.h>
int add(int x,int y);
int sub(int x,int y);
int mul(int x,int y);
int div(int x,int y);

main()
{
  int (*p_op[4])(int x,int y);
  int x=10,y=3,z;
  int i;

  p_op[0] = add;
  p_op[1] = sub;
  p_op[2] = mul;
  p_op[3] = div;

  printf("x=%3d  y=%3d\n",x,y);
  for (i=0;i<4;i++){
       z=(*p_op[i])(x,y);
       printf("    z=%4d\n",z);
       }
}

int add(int x,int y)
{
  return x+y;
}

int sub(int x,int y)
{
  return x-y;
}
 int mul(int x,int y)
{
  return x*y;
}
 int div(int x,int y)
{
  return x/y;
}
最終更新:2010年12月02日 04:01