我已阅读How does dereferencing of a function pointer happen?。然后,如果我一切都很好理解,那是否意味着有关函数,是否直接使用函数名称f相对于其地址&f相对于其* f无关紧要? 这样,n倍的取舍就无关紧要(即*** f) 但是这次,取地址的地址(即&& f)不是函数本身,而是函数存储在哪里的内存地址?
#include <stdio.h>
void (*f1bis)(int);
void f1(int);
void f1(int a) {
printf("F1 Value of a is %d\n", a);
return ;
};
int main(void) {
f1bis = &f1;
f1bis(14);// ? why this works
(*f1bis)(14);
(**f1bis)(14);
//(&f1bis)(14);// doesn't work why
//(&&f1bis)(14);// doesn't work why
f1(13);
(*f1)(13);
(**f1)(13);
(&f1)(13);// ? why this works
//(&&f1)(13);// ? this doesn't work (I guess it's equivalent to (&f1bis)(14) example )
return 0;
}
我是对的还是我错过了有关解释的内容?
谢谢。