函数指针如何使用

#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、如果没有区别,那种写法好一些(如果有区别请忽略)?
先谢过各位大神了!!!


叮当猫咪
浏览 1088回答 1
1回答

阿波罗的战车

1. 前者是隐式的,后者是显式,在C中都可以调用指向的函数;这个跟pFun = &glFun类似。2. 因为调用了指向的函数地址,当然返回的结果是一样的。3. 后者写法规范一些,让人和编译器立刻能知道这是一个函数指针变量在调用对应的函数功能。在C++中,基本类的非成员函数指针都需要后面这种写法。
打开App,查看更多内容
随时随地看视频慕课网APP