结论:在使用函数名时,可将函数名理解为一种特殊的指针,即指向自身的指针,再换句话说,指针存储的地址与自身的地址相同。可用以下程序验证:
void fun() { int i = 0; }
printf("fun = %p, *fun = %p, &fun = %p\n", fun, *fun, &fun);
因此,在调用函数时,以下三种方式等价:
fun() ==== (*fun)() ==== (&fun)()
结论:在使用函数名时,可将函数名理解为一种特殊的指针,即指向自身的指针,再换句话说,指针存储的地址与自身的地址相同。可用以下程序验证:
void fun() { int i = 0; }
printf("fun = %p, *fun = %p, &fun = %p\n", fun, *fun, &fun);
因此,在调用函数时,以下三种方式等价:
fun() ==== (*fun)() ==== (&fun)()