當前位置:編程學習大全網 - 編程語言 - C語言 怎麽調用指針數組函數

C語言 怎麽調用指針數組函數

1.函數指針的數組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。

例如:

double add(double a,double b){};

double sub(double a,double b){};

double mul(double a,double b){};

double div1(double a,double b){};

double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數指針的數組定義

2.函數指針是指向函數的指針變量。 因而“函數指針”本身首先應是指針變量,只不過該指針變量指向函數。這正如用指針變量可指向整型變量、字符型、數組壹樣,這裏是指向函數。C在編譯時,每壹個函數都有壹個入口地址,該入口地址就是函數指針所指向的地址。有了指向函數的指針變量後,可用該指針變量調用函數,就如同用指針變量可引用其他類型變量壹樣,在這些概念上是大體壹致的。函數指針有兩個用途:調用函數和做函數的參數。

3.函數指針的聲明方法為:

返回值類型( * 指針變量名) (形參列表);

“返回值類型”說明函數的返回類型,“( * 指針變量名)”中的括號不能省,括號改變了運算符的優先級。若省略整體則成為壹個函數說明,說明了壹個返回的數據類型是指針的函數,後面的“形參列表”表示指針變量指向的函數所帶的參數列表。例如:

int func(int x); /* 聲明壹個函數 */

int (*f) (int x); /* 聲明壹個函數指針 */

f = func; /* 將func函數的首地址賦給指針f */

或者使用下面的方法將函數地址賦給函數指針:

f = &func;

賦值時函數func不帶括號,也不帶參數,由於func代表函數的首地址,因此經過賦值以後,指針f就指向函數func(x)的代碼的首地址。

例子:

#include<stdio.h>

int?max(int?x,int?y){return?(x>y?x:y);}

int?main(){

int?(*ptr)(int,?int);

int?a,?b,?c;

ptr?=?max;

scanf("%d%d",?&a,?&b);

c?=?(*ptr)(a,b);

printf("a=%d,?b=%d,?max=%d",?a,?b,?c);

return?0;

}

  • 上一篇:湖南的職業技術學院有哪些?
  • 下一篇:編程求1到100的素數
  • copyright 2024編程學習大全網