轉移表 函式指標陣列 列舉

2021-06-23 00:20:50 字數 1243 閱讀 9118

所謂轉移表就是由——函式指標陣列、列舉 兩部分一起完成的。

例如:簡易計算器的實現,如下:

#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 申明變數...