为什么我可以将对函数的引用和函数本身分配给函数指针?
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 函数指针的工作方式有什么误解吗?
这几乎是
的完全重复
答案是,根据规范,函数可以隐式转换为函数指针(类似于数组到指针衰减)。
我正在尝试理解 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 函数指针的工作方式有什么误解吗?
这几乎是
答案是,根据规范,函数可以隐式转换为函数指针(类似于数组到指针衰减)。