C语言指针实验源码示例
这是有别于普通的一级、二级、三级。。。n级指针的例子。(n <= 某个值)
很多孩子们说C语言最难在于指针,也不明白孩子是不是说普通一级,二级。。都玩不过来。
有兴趣的孩子们不妨研究下下面这个例子。
#include <stdio.h>
//定义一个函数指针类型(指向的函数的返回值类型为 char *,无参数)
typedef char *(*FUN)(void);
//定义一个函数指针数组类型(指向的函数的返回值是一个函数指针,且此返回的函数指针指向的函数的返回值类型为char *,无参数)
typedef char *(*(*FARRAY[10])(void))(void);
char * test_a(void)
{
return "fuck\n";
}
FUN test_b(void)
{
return &test_a; //"return test_a" is also right, but warnings exist.
}
int main()
{
FUN pf = NULL;
FARRAY q = {0};
char *p = NULL;
q[0] = test_b; // "q[0] = &test_b" is also right
pf = (*q[0])();
printf((*pf)());
}