C語言 函式指標 函式指標陣列 轉移表

2021-09-19 06:06:47 字數 1281 閱讀 4350

1.什麼是函式指標?

函式指標也是指標,不過它指向的是函式的首位址。

體會下面一段**:

可以看到兩條語句執行的結果是一模一樣的。

再觀察下面這段 **:

可見它指向的就是函式的首位址

2.怎樣定義函式指標變數

例:①int (*p)  (函式引數)

int:函式的返回值是int型的

②void (*p) ()

void:函式的返回值型別是void,函式沒有引數

它是陣列,陣列的元素是函式指標

例如:①int (*p[10]) ()

定義了乙個有10個元素的函式指標陣列,它的每乙個元素都是函式指標,函式指標的型別是int(*)()

②void (*q[20]) (int a,int (*p) () )

定義了乙個由20個元素的函式指標陣列,它的每乙個元素都是函式指標,函式指標的型別是void(*) (int ,int (*) ()).

它的函式引數中乙個是int,另乙個是函式指標型別,int (*)()

通過函式指標陣列實現

典型例項:計算器

運算器的函式:

double add(double a, double b) 

double minus(double a, double b)

double mul(double a, double b)

double divs(double a, double b)

1.switch語句實現

int main() 

printf("result=%lf\n", ret);

} return 0;

}

2.轉移表實現

double(*p[5])() = ;

while (1)

else

}

通過轉移表,我們減少了**的冗餘情況,而且後期更加便於維護。

C語言 函式,函式指標 指標陣列,陣列指標。

include char fun1 char p,char a char fun2 char p,char a char fun3 char p,char a int main char pfun char p,char a 第6行使函式指標指向我們自定義的fun1函式。第7行是通過函式指標去呼叫我...

C語言 函式指標 函式指標陣列 函式指標陣列的指標

1.定義理解 函式的位址可以通過取位址函式名拿到,也可以通過函式名直接拿到。2.函式指標 1 定義乙個函式test void test char str intmain 2 函式指標的使用 呼叫函式test,傳參 zhangsan p zhangshan 這裡的 沒有起作用,它是讓我們知道這是乙個指...

轉移表 函式指標陣列 列舉

所謂轉移表就是由 函式指標陣列 列舉 兩部分一起完成的。例如 簡易計算器的實現,如下 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 定義列舉型別 in...