童鞋们,别搞混了!
函数指针顾名思义:是一个指针指向了一个函数。(这是一个函数,只不过这个函数由一个指针指向它)
当然,此函数的返回值同样可以返回一个指针 -》一个指针指向了一个指针函数 (真tm绕啊,重在理解)
例子:
- /*
- * 求最大值
- * 返回值是int类型,返回两个整数中较大的一个
- */
- int max(int a, int b) {
- return a > b ? a : b;
- }
- /*
- * 求最小值
- * 返回值是int类型,返回两个整数中较小的一个
- */
- int min(int a, int b) {
- return a < b ? a : b;
- }
- int (*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数
- int _tmain(int argc, _TCHAR* argv[])
- {
- printf("------------------------------ Start\n");
- f = max; // 函数指针f指向求最大值的函数max
- int c = (*f)(1, 2);
- printf("The max value is %d \n", c);
- f = min; // 函数指针f指向求最小值的函数min
- c = (*f)(1, 2);
- printf("The min value is %d \n", c);
- printf("------------------------------ End\n");
- getchar();
- return 0;
- }
指针函数: 这个函数的返回值是一个指针
例子:
- /*
- * 指针函数的定义
- * 返回值是指针类型int *
- */
- int *f(int a, int b) {
- int *p = (int *)malloc(sizeof(int));
- printf("The memeory address of p = 0x%x \n", p);
- memset(p, 0, sizeof(int));
- *p = a + b;
- printf("*p = %d \n", *p);
- return p;
- }
本文详细解释了函数指针与指针函数的概念及其使用方式。通过具体实例介绍了如何声明函数指针并将其指向特定函数,以及如何定义一个返回值为指针类型的函数。适合初学者理解这两个概念的区别。

被折叠的 条评论
为什么被折叠?



