位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 函數(shù)指針的調(diào)用格式

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-01
函數(shù)指針的調(diào)用格式為:

    (*函數(shù)指針變s)([實(shí)參表])

例如,上例中定義的指針fp已經(jīng)指向了函數(shù)max(),則利用fp調(diào)用max()的形式為:

    (*fp)(a,b);

其中a、b是實(shí)參,在函數(shù)調(diào)用前,已經(jīng)有確定的值。

【例題】求最大值

定義一個(gè)指向函數(shù)的指針,使之指向函數(shù)max(), max()的功能為求兩個(gè)數(shù)的最大值。 

程序代碼如下:

#include <stdio.h> 

int max(int a,int b);

main()

{

    int nl,n2,maxl; 

    int (*fp)();

    fp=max;

    printf("input two numbers:\n"); 

    scanf("%d%d", &nl, &n2); 

    maxl=(*fp)(nl,n2); 

    printf("max=%d\n", max1);

}

int max(int a,int b)

{

    return(a>b?a:b);

}

程序運(yùn)行,屏幕提示信息:

    input two numbers:

輸入兩個(gè)整數(shù):

    23  78

輸出結(jié)果為:

    max=78

    程序中,語句int(*fp)();為定義語句,定義fp為指向函數(shù)的指針。

    max為函數(shù)名,也代表了函數(shù)在內(nèi)存中的起始地址,當(dāng)使用語句fp=max;使指針fp指向max()函數(shù)后,fp指針也得到了函數(shù)max()的首地址。之后,在需要調(diào)用max()函數(shù)時(shí),直接使用fp指針即可找到max()函數(shù)在內(nèi)存中的起始地址,從起始地址的第一條指令開始執(zhí)行。

    這樣一來,對(duì)于調(diào)用函數(shù),除了直接使用函數(shù)名調(diào)用外,也可以使用指向函數(shù)的指針來調(diào)用。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部