所謂轉移表就是由——函式指標陣列、列舉 兩部分一起完成的。
例如:簡易計算器的實現,如下:
#includeint add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
enum opera; //定義列舉型別
int main(void)
;//定義函式指標陣列
while(ch = getchar(),ch !='\n')
else if(flag_a == 1&& flag_op == 0&& (ch == '+'||ch == '-' ||ch == '*' ||ch == '/'))//運算子
else if(flag_op == 1 && ch >=48&&ch <=57)//運算元2
else
//意外之筆,輸入格式不符合要求的字元 !
}if(flag_b == 0)//三部分沒有輸入完的 !
switch(opera) //確定操作符
result = fun[op](a,b); //計算
printf("the result = %d\n",result);
return 0;
}int add(int a,int b)
int sub(int a,int b)
int mul(int a,int b)
int div(int a,int b)
分好幾次不同輸入下的執行的結果如下:
12+36
the result = 48
12-36
the result = -24
12*3
the result = 36
12/2
the result = 6
12the format you input is wrong !
12-the format you input is wrong !
12--3
the format you input is wrong !
-4the format you input is wrong !
1a2-4
the format you input is wrong !
C語言 函式指標 函式指標陣列 轉移表
1.什麼是函式指標?函式指標也是指標,不過它指向的是函式的首位址。體會下面一段 可以看到兩條語句執行的結果是一模一樣的。再觀察下面這段 可見它指向的就是函式的首位址 2.怎樣定義函式指標變數 例 int p 函式引數 int 函式的返回值是int型的 void p void 函式的返回值型別是voi...
C語言 用函式指標陣列實現轉移表(計算器)
函式指標陣列也是陣列,陣列的每乙個成員是函式指標 這個指標指向函式 可以通過它實現乙個轉移表 計算器 如下 函式部分 include include pragma warning disable 4996 intadd int x,int y intsub int x,int y intmul in...
指標陣列 陣列指標 函式指標 函式指標陣列
陣列指標 指向陣列的指標,是乙個指標,其指向的型別是陣列 指標陣列 元素為指標的陣列,是乙個陣列,其中的元素為指標。例如 int a 5 這個是陣列指標。int a 5 這個是指標陣列。定義函式指標型別 int max int,int typedef int fun ptr int,int 申明變數...