1、指针与函数的关系
  可以把一个指针声明成为一个指向函数的指针。
  int fun1(char *, int); //声明一个函数fun1
  int (*pfun1)(char *,int); //声明一个函数指针pfun1
  pfun1=fun1; //将fun1函数的首地址赋值给指针pfun1
  int a=(*pfun1)("abcdefg",7); //通过函数指针调用函数
  2 、指针函数和函数指针
  简单的辨别方式是函数名前面的指针*号有没有被括号()包含,如果被包含是函数指针,反之则是指针函数。
  指针函数本质上是一个函数,其函数返回值是某一类型的指针。函数返回值必须用同类型的指针变量来接受,也是说,指针函数一定有函数返回值。
  int *fun(char *, int); //声明一个指针函数fun
  由于返回的是一个地址,所以类型说明符一般是int。它经常使用在返回数组的某一元素地址上。
  函数指针是指向函数的指针变量,即本质上是一个指针变量。