[C語言] function pointer的應用[四]: function pointer array

文章推薦指數: 80 %
投票人數:10人

[C語言] function pointer的應用[四]: function pointer array. 指標函數本身可以寫成陣列的形式,如此可以讓陣列中每一個陣列都有相對應的指標函數,如此可以增加指標 ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWrite[C語言]functionpointer的應用[四]:functionpointerarray指標函數本身可以寫成陣列的形式,如此可以讓陣列中每一個陣列都有相對應的指標函數,如此可以增加指標函數的的可用性Functionpointer的宣告與functionpointerarray的宣告方法首先,我們先來比較functionpointer的宣告方法與functionpointerarray的宣告方法int(*func)(int,int)//函數指標的宣告以上是函數指標的宣告方法,同理的,其實我們只要替換(*func)的這個變數形式宣告法,轉換為陣列形式的宣告法,int(*func[4])(int,int),我們就可以使用functionpointerarray。

int(*func[4])(int,int)//函數指標陣列的宣告將同性質的函數指標,傳入陣列當中這裡我採用我在functionpointer的應用[二]:傳進相同性質的function到function中這一篇中所使用的程式碼作為解說,以下是原始的程式碼我們可以看到以下的程式碼中,有add,minus,multiply以及divide四個函數,我們現在改寫以下的程式碼,將這四個函數以函數指標的方式,放入函數指標陣列當中,再以呼叫陣列元素的方式,來呼叫函數指標。

#includeintadd(inta,intb){returna+b;}intminus(inta,intb){returna-b;}intmultiply(inta,intb){returna*b;}intdivide(inta,intb){returna/b;}intoperation(inta,intb,int(*operation)(int,int)){returnoperation(a,b);}intmain(intargc,char*argv[]){intval;//add//val=add(4,2);val=operation(4,2,add);printf("val=%d\n",val);//minus//val=minus(4,2);val=operation(4,2,minus);printf("val=%d\n",val);//multiply//val=multiply(4,2);val=operation(4,2,multiply);printf("val=%d\n",val);//divide//val=divide(4,2);val=operation(4,2,divide);printf("val=%d\n",val);return0;}改寫後的程式碼#includeintadd(inta,intb){returna+b;}intminus(inta,intb){returna-b;}intmultiply(inta,intb){returna*b;}intdivide(inta,intb){returna/b;}int(*func_ptr_arr[4])(int,int);intmain(intargc,char*argv[]){intval;func_ptr_arr[0]=add;//將add函數加到陣列第0個位置func_ptr_arr[1]=minus;//將minus函數加到陣列第1個位置func_ptr_arr[2]=multiply;//將multiply函數加到陣列第2個位置func_ptr_arr[3]=divide;//將divide函數加到陣列第3個位置val=(*func_ptr_arr[0])(4,2);printf("val=%d\n",val);val=(*func_ptr_arr[1])(4,2);printf("val=%d\n",val);val=(*func_ptr_arr[2])(4,2);printf("val=%d\n",val);val=(*func_ptr_arr[3])(4,2);printf("val=%d\n",val);return0;}程式結果val=6val=2val=8val=2--MorefromMuLongPuYangFollowLovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedMuLongPuYang171FollowersFollowMorefromMediumAviralJanvejaJavaCourse|Chapter1 :IntroductionSomnathMoreJavaInnerExample-10ProgramAashilNaiduBasicsofJAVAUdaraJayasundaraClassesandObjects — JavaHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?