这是定义一个函数指针数组,这外数组名为x , 有10个元素,每个元素都是一个函数指针
函数类型为 char fun(int) 即:返回值为char,有一个形参为int的函数
如:
char fun(int n)
{
printf("n=%d\n",n );
return 'A' ;
}
int main()
{
char (*x[10])(int);
x[0]=fun ;
printf("func ret=%c\n",x[0](4) );
return 0;
}
自己试试吧
首先,这样你应该认识:
char (*x)(int);
这是一个函数指针x,指向 一个char型返回值和int形参的函数。
假如有这样一个函数,
char test(int x){ return x + 1; }
那么可以这样赋值,
x = test;
之后这样调用,
x(3);
那么,char (*x[10])(int);就好理解了,它是个数组,是个函数指针数组,数组元素
就是当个的函数指针x[0],x[1],...x[9]这样,
可以赋值,
x [0] = test;
x[1] = test;
...
调用的时候,也是
x[0](3);
x[1](3);
这样
char (*x[10])(int)定义了 函数指针数组x[10],
其中函数参数是int,返回值为char。如
char f(int a){return '0'+a;}
int main()
{
char (*x[10])(int);
x[0] = f;
printf("%d", x[0](1)); //x[0](1)相当于调用f(1),最后打印1
}
x是具有10个元素的的数组,每一个元素都是一个指向函数的指针,被指向的函数具有一个int型形参,返回一个char型值。