Bruce_N 2023-10-20 07:17 采纳率: 57.1%
浏览 7

C语言中的函数指针问题

C语言中的函数指针,是否可以不用说明所指向函数的参数类型,且不影响使用?
例如下面的代码:

int func1(int a, int b) {
    return a>b?a:b;
}

main()
{
    int x = 10, y = 20;
    int (*pf)();
    pf = func1;
    int result = (*pf)(x, y);
    printf("%d", result);
}

函数指针pf定义时指向的函数类型是无参,但并不影响使用,程序会正常运行并正确输出结果,是否函数指针都不用声明指向的函数类型的参数呢?

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-10-20 08:54
    关注

    声明函数指针需要注意的事项:
    1.指针对应的数据类型必须与函数返回类型相同。“函数返回值类型”表示该指针变量可以指向具有什么返回值类型的函数。
    2.指针的参数列表必须与函数参数列表中的数据类型的顺序一致,不需要形参。“函数参数列表”表示该指针变量可以指向具有什么参数列表的函数。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月20日