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...