程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 函數式編程指針-函數指針的一例子,求教?

函數式編程指針-函數指針的一例子,求教?

編輯:編程綜合問答
函數指針的一例子,求教?

#include
int max(int,int);

void main()
{
int a=2,b=3;
int(*pmax)(int,int);
pmax=max;
printf("max is %d\n", (*pmax)(a,b));
}
int max(int x , int y)
{
return x>y?x:y;
}
輸出語句裡調用max函數時(*pmax)(a,b)或(pmax)(a,b)都是正確的這是怎麼回事???

最佳回答:


例如:void (*fptr)();
把函數的地址賦值給函數指針,可以采用下面兩種形式:
    fptr=&Function;
    fptr=Function;
取地址運算符&不是必需的,因為單單一個函數標識符就標號表示了它的地址,如果是函數調用,還必須包含一個圓括號括起來的參數表。
可以采用如下兩種方式來通過指針調用函數:
    x=(*fptr)();
    x=fptr();
第二種格式看上去和函數調用無異。但是有些程序員傾向於使用第一種格式,因為它明確指出是通過指針而非函數名來調用函數的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved