C 基础好的朋友不妨看一下!<函数与指针>
时间:2010-10-21 来源:aaron_xueli
功能实现:返回函数指针的函数
本实例对于初学者可以比较难以理解,不过由于本内容实际项目用得很少,它一般只出现在知名公司招聘时的笔记面试中。
代码如下:
#include <stdio.h> |
运行结果:
the number is 100
the max is 10
程序说明:
1. 程序首先定义了一个函数get_big,用来获取两个数中的较大者。
2. int (*get_function(int a))(int, int)是一个返回函数指针的函数。这个可能比较难以理解。我们首先抓住get_function, 因为运算符()的优先级比*高,所以get_function先与()结合。get_function(int a)是含有一个整型参数的函数。这个函数的返回值比较特殊,它的返回值是int(*)(int, int), 也就是它返回的是一个指向函数的指针。该指针所指向的函数有两个整型参数。get_function中, 将get_big作为函数的返回值。get_big是一个函数,也是函数get_big的入口地址,它是一个指针。
3. 主函数中,定义了一个指向函数的指针p, p所指向的函数有两个整型参数。然后调用get_function,将返回值赋给p。函数get_function有一个整型形参,调用时以100作为实参。函数get_function返回一个指向函数的指针。调用get_function结束后,p就指向了get_big函数。之后通过P调用get_big函数,将调用的返回值赋给变量max。