为什么可以在不延迟的情况下调用函数指针



如果我有以下代码示例,

...
typedef void (*printer_t)(int);
int main()
{
printer_t p = &print_int;
p(5);
return 0;
}

为什么p(5);(*p)(5);都输出打印5所需的行为?如果我有一个指向函数的指针,是否首先需要取消引用然后调用它,即(*p)(5);是正确的行为?p(5);如何通过尝试对内存地址位置使用调用操作而不导致错误?

为什么可以在不延迟的情况下调用函数指针?

因为标准说你可以。

是不是首先需要取消引用

不需要显式使用间接运算符

最新更新