我的以下代码工作正常。但我毫不怀疑,请参阅//Comment1
和//Comment2
#include<stdio.h>
#include<string.h>
struct PTR
{
int (*funptr)(int);
};
int fun1(int)
{
printf("Fun1\n");
return 0;
}
int fun2(int)
{
printf("Fun2\n");
return 0;
}
int main()
{
PTR p;
p.funptr = &fun1; //Comment1
p.funptr(5);
printf("\n");
p.funptr = fun2; //Comment2
p.funptr(5);
return 0;
}
输出:Fun1 FUN2
输出没问题。
评论1'&amp;'使用了opertor,所以我们正在探讨如何获取地址,在评论2中,我们没有使用'&amp;',那么哪一个是正确的方法?
答案 0 :(得分:1)
下面,
p.funptr = &fun1
我们提供了该函数的地址。所以'&amp;'这里是可选的,因为p.funptr = fun1
也分配了函数的地址。
答案 1 :(得分:1)
'&安培;'在获取函数地址时是可选的。