首页 新闻 会员 周边

函数指针如何使用

0
悬赏园豆:10 [已解决问题] 解决于 2018-07-06 13:41
#include <stdio.h>

char (*pFun) (int);
char glFun(int a)
{
    return a;
}

int main(void)
{
    pFun = glFun;
    // 1、printf("%c\n", pFun('a'));
    // 2、printf("%c\n", (*pFun)('a'));
}
1、代码注释中的两种写法的区别在哪?
2、为什么运行结果是一样的?
3、如果没有区别,那种写法好一些(如果有区别请忽略)?
先谢过各位大神了!!!
问题补充:

有没有好心人给解解惑的,谢谢了<..>

insistYuan的主页 insistYuan | 初学一级 | 园豆:186
提问于:2018-07-05 14:07
< >
分享
最佳答案
0

1. 前者是隐式的,后者是显式,在C中都可以调用指向的函数;这个跟pFun = &glFun类似。

2. 因为调用了指向的函数地址,当然返回的结果是一样的。

3. 后者写法规范一些,让人和编译器立刻能知道这是一个函数指针变量在调用对应的函数功能。在C++中,基本类的非成员函数指针都需要后面这种写法。

收获园豆:10
sciapex | 菜鸟二级 |园豆:423 | 2018-07-06 12:43

fe非常感谢您的回答,让我有种豁然开朗的感觉(0.0)

insistYuan | 园豆:186 (初学一级) | 2018-07-06 13:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册