#include<stdio.h>
int main(){
extern void fun(int);
void (*p)(int) = fun;
fun(2);
(*fun)(2);
(*p)(2);
p(2);
printf("%x %x %x\n",p,fun,*fun);
}
void fun(int i){
printf("hi %d\n",i);
}
ここでは、すべての関数呼び出しで同じ出力が得られます。そしてp, fun, *fun
、同じアドレスを与えています。これをどのように解釈できますか?
How can fun and *fun be same?