博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

函数指针和指针函数的区别

Posted on 2018-10-22 17:00  (︶O︶)  阅读(5067)  评论(0编辑  收藏  举报

1.指针函数 _type_ *function(int, int)

_type_ *function(int, int)与普通函数int function(int,int)类似,只是返回的数据类型不一样而已,_type_ *function(int, int)返回的是指针地址,int function(int,int)返回的是int型数据。

 1 #include "stdio.h"
 2 #include "stdlib.h"
 3 
 4 int sum =0;
 5 int *getAdd(int a, int b)
 6 {
 7     sum = a+b;
 8     return ∑
 9 }
10 
11 int getDiff(int a, int b)
12 {
13     return a>b?(a-b):(b-a);
14 }
15 
16 int main()
17 {
18     int *pTemp, Temp;
19     pTemp = getAdd(115,10);
20     printf("ADD result:%d\n", *pTemp);
21     
22     Temp = getDiff(115,10);
23     printf("DIFF result:%d\n", Temp);
24     return 0;
25 }

2.函数指针__type__ (*function)(int,int)

__type__ (*function)(int,int)只是一个指针,变量指针是指向一个变量的地址,结构体指针是指向一个结构体的首地址,而函数指针是指向一个函数的地址,它是一种类型,比int,char高级的类型。

 1 #include "stdio.h"
 2 #include "stdlib.h"
 3 
 4 int (*function)(int ,int);
 5 
 6 int Max(int a, int b)
 7 {
 8     return a>b?a:b;
 9 }
10 
11 int Min(int a, int b)
12 {
13     return a<b?a:b;
14 }
15 
16 int main()
17 {
18     int Num1 = 20, Num2 = 30;
19 
20     function = Max;
21     printf("Max is %d\n", function(Num1, Num2));
22     function = Min;
23     printf("Min is %d\n", function(Num1, Num2));
24     return 0;
25 }