【发布时间】:2023-04-06 23:44:02
【问题描述】:
关于下面的sn-p代码(用C编写)有几件事我不明白:
struct T {
int a;
int *b;
struct T *next;
} ;
struct T *p1;
struct T* (*f)(int, int, struct T*);
struct T* g(int a, int b, struct T* c)
{
return (a > b ? c : NULL);
}
f = &g;
p1 = (*f)(4,3,p1);
具体来说,这条线是什么意思?
struct T* (*f)(int, int, struct T*);
这是一个函数吗?如果是这样,为什么它没有主体,为什么似乎缺少形式参数名称?如果没有主体,这个函数会返回什么?
另外,下面的作业是怎么回事?
f = &g;
【问题讨论】:
-
建议编译这个并通过调试器运行。
-
这里有一个很好的函数指针教程:newty.de/fpt/index.html