C常见有关问题之函数指针

C常见问题之函数指针

考虑如下代码:

#include <stdio.h>

void show(void)
{
    printf("hello\n");
    return;
}

int main(void)
{
    void (*p)(void) = show;
    (*p)();
    p();
    return 0;
}

执行结果如下:

hello
hello

上述代码需要注意一下几点:

1.函数名本身即为函数的地址

2.用函数指针调用函数时,有无*均可

3.由于()的优先级高于*,故(*p)中的()不可或缺