函数指针解引用:解开谜团
与解引用函数指针不会完成任何任务的假设相反,它在 C 中启动了一种独特的行为在作为代码访问数据存储器的传统意义上,函数指针不会被取消引用。
相反,在右值上下文中取消引用函数指针(例如在提供的示例代码中)会触发其立即转换为指向原始函数的指针。令人惊讶的是,随后对该指针的取消引用会检索相同的函数值,然后该值会立即转换回指针。这个循环可以无限地重复。
在检查左值上下文(例如,赋值的左侧)中的函数指针时,这种行为变得尤其明显。与转换为元素指针的数组不同,函数值转换为指向其自身类型的指针。因此,在左值上下文中取消引用函数指针会将一个新函数分配给该指针。
函数值隐式转换为指针背后的基本原理是纯粹实用的。对于使用函数指针的程序员来说,它消除了大量编写 & 的必要。相反,调用位置的函数指针会自动恢复为函数值,从而避免使用 * 来调用它们。
以上是当您在 C 中取消引用函数指针时会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!