请描述以下代码中的p

char(*(*p())[])(int, void (*)())

 

#include <iostream>
using namespace std;

int main()
{
    char ( *  (*p())[]  )(int, void (*)());
    p();
    return 0;
}
char f1(int, void (*)())
{
   return 'a';
}
char f2(int, void (*)())
{
   return 'b';
}
typedef char (*funtype[])(int, void (*)());

 char ( *  (*p())[2]  )(int, void (*)()){
//     static funtype farr_p;
    funtype  parr={f1,f2};
//    funtype* pf=&parr;
     cout<<"hello!"<<endl;
     return &parr;
 }

 

 

 

由外向里看 :

1.char ( *  )(int, void(*)()) 是一个函数指针

2.加上[] 后是 函数指针数组

3.再加上(*p())就是一个函数,所以p()是一个函数,返回值是类型为char ( *  )(int, void(*)())的函数指针数组

 

 

 

相关文章:

  • 2021-04-18
  • 2021-12-20
  • 2021-11-12
  • 2021-05-31
  • 2021-06-10
  • 2021-12-08
  • 2021-11-01
猜你喜欢
  • 2021-09-06
  • 2021-11-06
  • 2021-11-23
  • 2021-08-15
  • 2021-07-06
相关资源
相似解决方案