有几句不能理解的C语言句子,高手帮忙!小弟在线等待!!!1

psamw 2003-08-07 09:00:14
1.void(* funtb[][3])(char * *,char)=
{NULL,copych,NULL},
{NULL,copych,NULL},
{NULL,copych,NULL};

2.struct intNode *(* fp)(void)
请问这里为什么后面加一个void是什么意思呢

3.struct intNode *(*fpt[])(void)={createlist,inNode,delNode,revNode,NULL};

请各位老大帮帮小弟
小弟马上重分酬谢!
...全文
32 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjk129 2003-08-07
  • 打赏
  • 举报
回复
char** 与char[][]等价
cjk129 2003-08-07
  • 打赏
  • 举报
回复
1、funtb是一个指向函数的指针,该函数接受两个参数并返回一个指向9个void指针数组的指针。

2、当看到这样的复杂定义时,最好的处理方法是从中间开始向外扩展,从“中间开始”的意思是从变量名开始,这里是指fp,“向外扩展”的意思是先注意右边最近的项(在这个例子中没有该项是以右括号结束),然后注意左边(用星号表示指针),注意右边(带一个参数表示这个函数带一个参数 ),再注意左边(struct intNode *表示返回intNode结构类型的指针)。大多数声明都是以左-右-左动作的方式工作的,该表达式的意思是:fp是一个指向函数的指针,该函数接受一个void型的参数,并返回一个intNode型指针.
3.该表达式即可按以上方法推出意思来




psamw 2003-08-07
  • 打赏
  • 举报
回复
char** 是指什么呢
vt 2003-08-07
  • 打赏
  • 举报
回复
fireseed说的没错,只要切记结合顺序就能明白
1:void(* funtb[][3])(char * *,char) 
funtb首先与[]结合,funtb[][],明显funtb[][]是一个数组,数组里面的元素是函数指针
void(* )(char * *,char) 
typedef 一下就很明显了
typedef void(* elementtype)(char * *,char);
elementtype funtb[][3];
2:struct intNode *(* fp)(void)
fp首先与*结合,*fp,这表明fp是一个指针,指针指向的类型为struct intNode *()(void)
typedef 一下:
typedef struct intNode * (elementtype)(void);
//equal to typedef struct intNode * elementtype(void);
现在清楚了吧,elementtype是一个函数类型,该函数不需要参数,返回值为一个指向struct intNode的指针
3跟1一样,自己想一下

njuhuangmy 2003-08-07
  • 打赏
  • 举报
回复
第一个 函数 没有 返回值 函数 参数 是 char** 和 char
一共 9 个 函数 , funtb[0][1] funtb[1][1] funtb[2][1] 为 copych 函数
往字符串或者 什么里面 copy 一个 字符的意思吧

第二个 函数 返回的 都是 结构体 变量 的指针 ,参数 为 void
struct intNode* (*fp)(void)

第三个 就是 把 第一个 和 第二个 集合 起来了 ,不过,这一次 是
一维 的 函数指针数组

ok 了 ?
psamw 2003-08-07
  • 打赏
  • 举报
回复
为什么没有人回答呢
psamw 2003-08-07
  • 打赏
  • 举报
回复
能说具体点吗
小弟是初学的
fireseed 2003-08-07
  • 打赏
  • 举报
回复
都是函数指针,void表示没有参数

第1和第3是函数指针数组

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧