函數指針和指針函數的區別


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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM