C语言基础_函数指针
生活随笔
收集整理的這篇文章主要介紹了
C语言基础_函数指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、函數? 實現某特定功能的代碼
1)函數名與數組名一樣是地址
2)函數指針 指向函數的指針 可以通過函數指針調用指向的函數
3)返回值類型 (*函數指針名)(參數類型)? = 函數名
int maxValue(int a,int b){return a > b ? a : b; } int (*p)(int,int) = maxvalwe;printf("%d\n",p(3,4)); //用指針去調用函數4) 示例代碼
int maxValue(int a,int b){return a > b ? a : b; } int sumValue(int a,int b){ int sum = a+b;return sum; } int main(int argc, const char * argv[]) {int (*p)(int,int) = NULL;int n = 0;scanf("%d",&n);switch (n) {case 1:p = maxValue;break;case 2:p = sumValue;break;default:printf("不在服務區");break;}if (p!=NULL) {printf("%d",p(3,5));}return 0; }?5)按學生成績進行升序排列 成績90以上者 名字后面加高富帥
typedef struct student{char name[20];char gender;int age;float score; }Student; void print(char *name){strcat(name, "高富帥"); } void findvalue(Student *s,int count,void(*p)(char *)){for (int i =0; i<count; i++) {if (s[i].score > 90) {p(s[i].name);}printf("%s %c %d %f\n",s[i].name,s[i].gender,s[i].age,s[i].score);} } int main(int argc, const char * argv[]) {Student stu[3] = {{"xiao",'m',23,70},{"ming",'f',24,91},{"zhang",'m',28,95}};Student *s = stu;findvalue(s,3,print);return 0; }?6)實現函數動態排列
typedef struct student{char name[20];char gender;int age;float score; }Student; typedef BOOL(*sortAll)(Student stu1,Student stu2);//定義一個函數指針類型 void sortStudent(Student *s,int count,sortAll al)//函數指針指向函數(sortAge) {for (int i = 0; i < count-1; i++) {for (int j = 0; j < count-1-i; j++) {//函數回調if (al(s[j],s[j+1])) {Student temp = s[j];s[j] = s[j+1];s[j+1] = temp;}/*通過函數指針al指向函數(sortAge)*所以s[j],s[j+1]這兩個參數也指向函數(sortAge)的形參變量stu1,stu2if(al(s[j]),s[j+1]) 等價于 if(s[j].age > s[j+1].age)*/}}for (int i =0; i<count; i++) {printf("%s %c %d %.2f\n",s[i].name,s[i].gender,s[i].age,s[i].score);} } BOOL sortAge(Student stu1,Student stu2) {return stu1.age > stu2.age; } int main(int argc, const char * argv[]) {Student stu[3] = {{"xiao",'m',23,70},{"ming",'f',24,91},{"zhang",'m',28,95}};Student *s = stu;sortStudent(s,3,sortAge);return 0; }?
轉載于:https://www.cnblogs.com/ChinaTiger/p/4722244.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的C语言基础_函数指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gym - 100625E Encode
- 下一篇: iOS 中导航控制器全屏向右滑动返回上一