函式指標陣列用法
阿新 • • 發佈:2018-12-10
#include <stdio.h> int add(int a,int b) { return a+b; } int sub(int a,int b) { return a-b; } int mul(int a,int b) { return a*b; } int div(int a,int b){ return a/b; } void make_menu(){ printf("****************************\n"); printf("請選擇選單:\n"); printf("1:加 2:減 3:乘 4:除 0:退出 \n"); } /*定義函式指標陣列變數 (int,int) 對應於函式指標陣列 指向的函式列表 //方式1*/ //int (*fun_array[4]) (int,int) = {add, sub, mul, div}; //方式2: 先定義函式指標型別;在通過指標型別定義函式指標陣列 typedef int (*func) (int,int); func fun_array[4] = {add, sub, mul, div}; int main() { int i,j; int cmd; while(1) { make_menu(); scanf("%d",&cmd); if(cmd==0) { break; } if(cmd >=1 && cmd<=4 ) { printf("請輸入2個數字:"); scanf("%d%d",&i,&j); //通過函式指標陣列去呼叫對應的函式 int result = fun_array[cmd-1](i,j); printf("result:%d\n",result); } } return 0; }
作用:可代替switch-case使用