首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

函数指针有关问题

2012-02-29 
函数指针问题#includestdio.hvoidf0(inta,intb,intc){printf( f0%d%d%d...\n ,a,b,c)}voidf1(inta,in

函数指针问题
#include   <stdio.h>

void   f0(int   a,   int   b,   int   c){   printf( "f0   %d   %d   %d...\n ",   a,   b,   c);}
void   f1(int   a,   int   b,   int   c){   printf( "f1   %d   %d   %d...\n ",   a,   b,   c);}
void   f2(int   a,   int   b,   int   c){   printf( "f2   %d   %d   %d...\n ",   a,   b,   c);}

int
main()
{
                void   (*fa[3])(int,   int,   int);
                void   (*fp)(int,   int,   int);
                int   i   =   0;

                fa[0]   =   f0;
                fa[1]   =   f1;
                fa[2]   =   f2;

                fp   =   fa;   //assignment   from   incompatible   pointer   type
                for(   ;   i   <   3;   ++i)
                                (*(fp   +   i))(i,   i   +   1,   i   +   2);
}

我的疑惑是为什么fp与fa不是一个类型的指针?
要想正确赋值的话fp应该怎眼定义?并能实现后来的循环操作?
谢谢

[解决办法]
一个是函数指针数组,一个是单个函数指针.你说能直接赋值么
[解决办法]
由于数组是常指针

所以 fp==> *
fa==> **

多一级 :)
[解决办法]
void (**fp)(int, int, int);

[解决办法]
mark

热点排行