結論:在使用函數名時,可將函數名理解爲一種特殊的指針,即指向自身的指針,再換句話說,指針存儲的地址與自身的地址相同。可用以下程序驗證:
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)()