3、赋值:
  p2[1] = add;
  理解上跟上面是一样的。
  4、调用:
  p2[1](2,3);
  (*p2[1])(3,4);
  同样是2种方式都可以。
  三、指向“包含多个函数指针的数组“的指针
  这个标题好像有点拗口。简而言之,这个指针指向上文中的 “包含多个函数指针的数组” 。其实很简单,说白了,是把上文中的p2用一个指针来代替。
  1、声明:
  void (*(*p3)[2])(int a, int b);
  可以看到,无非是把p2用*p3代替。
  2、赋值,注意,既然是指针,使用前必须初始化:
  p3 = &p2;
  (*p3)[1] = add;
  注意!既然实质上是把p2用*p3代替,c++11可以很简单的这样直接定义:auto p3 = &p2; 代替了void (*(*p3)[2])(int a, int b)= &p2;
  3、调用:
  (*p3)[1](1, 2);
  (*(*p3)[1])(1, 2);