指针函数与函数指针,通过函数指针调用函数的两种方式

指针函数:即返回指针的函数。
函数指针:即指向函数的指针。
如下:

#include <stdio.h>
char *fun(void)
{
    return NULL;
}
void funp(void)
{
    printf("I is funp(), i am running!\n");
}
int main()
{
    printf("%d\n",sizeof(fun()));
    void (*p)(void) = funp;
 //   p=funp;
    p();
    (*p)();
    return 0;
}

运行结果:

4
I is funp(), i am running!
I is funp(), i am running!

为什么p()和(*p)的运行结果一样呢。
因为对于c标准来说,上面通过函数指针调用函数的两种方式
p() 和 (*p)()是完全等价的。
不过,我个人觉得p()更严谨一点。

posted @ 2022-04-19 18:17  enbug  阅读(271)  评论(0)    收藏  举报