带有参数的函数,如果通过函数指针调用。

2025-02-28 14:47:26
推荐回答(2个)
回答1:

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

注1:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

例子:

#include
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;
}

回答2:

既然能够给结构体中的指针赋以函数指针,显然这个指针也是一个函数指针,则在调用这个指针时直接传给参数就可以了。


typedef void (*Pfun)(double);
struct One
{
Pfun fun;
};

void show(double a)
{
cout<}
int main(int argc, char *argv[])
{
Pfun ar = show;
One abc;
abc.fun = ar;
abc.fun(3.0);
}