C言語の関数ポインタの3つの使い方をまとめます。


C言語の関数ポインタの3つの使い方をまとめます。
ここで自分の心得を共有して、皆さんと一緒に技術を共有したいです。何か足りないところがありましたら、ご指摘ください。この目的を書き出して、みんながいっしょに成長することを望んで、私も技術の間が高低がないことを信じて、補足だけあって、分かち合うことができて、お互いに更に成長することができます。
定義方式:int(*p)(int x,int y);
実現コード:  

#include <stdio.h>
int sum(int x, int y){
  return x + y;
}
int reduce(int x, int y){
  return x - y;
}
int multiply(int x, int y){
  return x * y;
}
float divide(int x, int y){
  if(y ==0)
    return 0;
  else
    return x *1.0f/ y;
}

struct Student{
  int age;
  float weight;
  char *name;
  void(*studentP());
}

int main(int argc, const char * argv[])
{

  // 1.      
  int (*p)(int x, int y);
  // 2.   
  p = sum;
  // 3.  
  int s = p(3,2);
  // 4.  
  printf("%d
",s);//=5; //-------------- printf(" 1,2,3,4
"); int num; scanf("%d",&num); switch (num) { case 1: p = sum; break; case 2: p = reduce; break; case 3: p = multiply; break; case 4: p = divide; break; } int result = p(22,2); printf("%d
",result); // : struct Student stu = (22,88,"tom",studp); printf(" =%d",sizeof(stu)); //1. stu.studp; //2. struct stu* stp = &stu; (*stp).studp; //3. stp -> studp; return 0; }
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。