为什么我可以将对函数的引用和函数本身分配给函数指针?

Why can I assign to a function pointer both a reference to a function a the function itself?

我正在尝试理解 C 中的函数指针。

我定义了这个类型:

typedef int (*bin_op_ptr)(int, int);

我认为它应该是一个指向带有两个 int 参数和 return 一个 int.

的函数的指针

然后我用这个原型定义了一个简单的函数:

int min(int a, int b);

我注意到我可以同时做到这两点

bin_op_ptr min_ptr1 = min;bin_op_ptr max_ptr2 = &min;

我有点迷茫。

为什么可以将 min 和对 min 的引用分配给相同类型的变量?

如果我有一个指向 Integer 的指针,我只能分配一个对整数的引用,而不是整数本身。

我对 C 函数指针的工作方式有什么误解吗?

这几乎是

的完全重复

答案是,根据规范,函数可以隐式转换为函数指针(类似于数组到指针衰减)。