指针函数与函数指针,通过函数指针调用函数的两种方式
指针函数:即返回指针的函数。
函数指针:即指向函数的指针。
如下:
#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()更严谨一点。
浙公网安备 33010602011771号