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)());   
} 

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据