位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 函数指针的调用格式

提问人:刘团圆发布时间:2020-12-01
函数指针的调用格式为:

    (*函数指针变s)([实参表])

例如,上例中定义的指针fp已经指向了函数max(),则利用fp调用max()的形式为:

    (*fp)(a,b);

其中a、b是实参,在函数调用前,已经有确定的值。

【例题】求最大值

定义一个指向函数的指针,使之指向函数max(), max()的功能为求两个数的最大值。 

程序代码如下:

#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);

}

程序运行,屏幕提示信息:

    input two numbers:

输入两个整数:

    23  78

输出结果为:

    max=78

    程序中,语句int(*fp)();为定义语句,定义fp为指向函数的指针。

    max为函数名,也代表了函数在内存中的起始地址,当使用语句fp=max;使指针fp指向max()函数后,fp指针也得到了函数max()的首地址。之后,在需要调用max()函数时,直接使用fp指针即可找到max()函数在内存中的起始地址,从起始地址的第一条指令开始执行。

    这样一来,对于调用函数,除了直接使用函数名调用外,也可以使用指向函数的指针来调用。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部