读书人

函数指针有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

函数指针问题
#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

读书人网 >C语言

热点推荐