c语言指针求助
答案:3 悬赏:80 手机版
解决时间 2021-05-10 19:37
- 提问者网友:愿为果
- 2021-05-10 09:04
各位指针高手: int *(*(*p)[])(int (*p)()); 这句话什么意思?
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-05-10 09:37
一个指向元素类型为返回int*,接受返回int的函数指针的函数指针的数组的指针
#include <stdio.h>
int* f( int(*)() ) { printf( "strange pointer!\n" ); return 0; }
int main()
{
int* (*a[][1])( int (*)() ) = { f };
int *(*(*p)[1])(int (*p)()) = &a[0];
(*p)[0](main);
return 0;
}
解析这类特殊指针可以使用“左-右-左”方法。
#include <stdio.h>
int* f( int(*)() ) { printf( "strange pointer!\n" ); return 0; }
int main()
{
int* (*a[][1])( int (*)() ) = { f };
int *(*(*p)[1])(int (*p)()) = &a[0];
(*p)[0](main);
return 0;
}
解析这类特殊指针可以使用“左-右-左”方法。
全部回答
- 1楼网友:醉吻情书
- 2021-05-10 11:29
先从总体的看int* (指针1)(参数1);现在就分析<指针1><参数1><参数1>很简单就一个<函数指针><指针1>是指向一个<函数指针数组>的指针
分解后的代码是下面
#include <stdio.h>
int F() { return 0; }int* F1(int (*)()){ printf("HelloWorld\n"); return 0; }
int main(){ int* (*p1)(int (*)()); p1 = F1; int* (*p2[3])(int (*)()); p2[0] = p1; int* (*(*p3)[3])(int (*)()); p3 = &p2; ((*p3)[0])(F); return 0;}
- 2楼网友:白昼之月
- 2021-05-10 10:15
这个表达式好像是有问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯