问:
原声明:int *(*a[5])(int, char*);
变量名为a,直接用一个新别名pFun替换a就可以了:
typedef int *(*pFun)(int, char*);
原声明的最简化版:
pFun a[5];
到底应该怎么理解这句话呢?谢谢大家了!
答案:
typedef int pInt; 知道什么意思,上面的就好理解了哈。
pInt a[5];
typedef int *(*pFun)(int, char*);
声明一个函数指针类型pFun , 给类型的指针指向的函数,返回类型为 int * 参数为(int ,char *)
这样pFun 就和 pInt 一样是一种类型了
可以利用他来声明变量
pFun b; 一个函数指针
pFun a[5]; 一个函数指针数组 a[0]到a[4]每一个都是一个函数指针。
你可以定义一个这样的函数
int * Fun(int i,char *c)
{
int *c=new int; //c pointer to a uninitialized int;
*c=i; //c point to a int initialized to 0;
return c;
}
然后
pFun b;
b=Fun;
可以利用b来调用Fun函数
b(2,c) 等价于 Fun(2,c)
阅读(2519) | 评论(0) | 转发(0) |