如何在函数指针中使用函数的地址?

Pra*_*ari 5 c pointers

我的以下代码工作正常.但我有点怀疑,请看看//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;

}
Run Code Online (Sandbox Code Playgroud)

输出:Fun1 Fun2

输出没有问题.

在comment1'和'opertor被使用,所以我们正在探讨告诉获取地址,在评论2中,我们没有使用'&',那么哪一个是正确的方法?

Spa*_*Ace 1

取函数\xe3\x80\x82的地址时,'&'是可选的

\n