C語言中函數指針的三種使用方法總結
在這里分享一下自己的心得,希望和大家一起分享技術,如果有什么不足,還請大家指正。寫出這篇目的,就是希望大家一起成長,我也相信技術之間沒有高低,只有互補,只有分享,才能使彼此更加成長。
定義方式:int (*p)(int x, int y);
實現代碼:
#include <stdio.h>int sum(int x, int y){ return x + y;}int reduce(int x, int y){ return x - y;}int multiply(int x, int y){ return x * y;}float divide(int x, int y){ if(y ==0) return 0; else return x *1.0f/ y;}struct Student{ int age; float weight; char *name; void(*studentP());}int main(int argc, const char * argv[]){ // 1.定義函數指針 int (*p)(int x, int y); // 2.初始化 p = sum; // 3.賦值 int s = p(3,2); // 4.打印 printf("%d/n",s);//=5; //-------------- printf("請輸入數字1,2,3,4/n"); int num; scanf("%d",&num); switch (num) { case 1: p = sum; break; case 2: p = reduce; break; case 3: p = multiply; break; case 4: p = divide; break; } int result = p(22,2); printf("%d/n",result); //結構體: struct Student stu = (22,88,"tom",studp); printf("結構體長度=%d",sizeof(stu)); //1. stu.studp; //2. struct stu* stp = &stu; (*stp).studp; //3. stp -> studp; return 0;}
如有疑問請留言或到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答