注册 登录
编程论坛 C++教室

大家帮忙看下我这个问题!谢了!

songhuirong1 发布于 2011-08-06 07:46, 626 次点击
下列声明的类型是什么?
void (*(*papf)[2])(int);
怎样用typedef 名字来使这些声明更容易阅读?
3 回复
#2
songhuirong12011-08-06 08:09
哦。我知道了。这个类型是“指向函数指针数组的指针”,可以如下声明:
程序代码:
void f1(int) {}
void f2(int) {}

typedef void (*PF)(int);
PF s[2] = {f1,f2};
PF (*p)[2] = &s;
应该是这样的。
#3
jcw081201102011-08-09 15:20
*papf 这是一个指针 ;(*(*papf)[2]) 这个是一个指向含有2个指针元素的指针; void XX(int);这个是一个函数声明;
void (*(*papf)[2])(int); 这个是一个指向含有函数的指针数组的指针函数声明; 他有一个参数没有返回值;  
#4
jcw081201102011-08-09 15:28
这首先是一个函数; 不过函数名是一个指针; 所以叫做指针函数;它指向的是一个数组,这个数组指向2个函数;
如果使用 自定义类型; 反过来定义 先自定义一个指向函数的数组; 再定义一个指向这种数组的指针;
1