首页 > 后端开发 > C++ > 当您在 C 中取消引用函数指针时会发生什么?

当您在 C 中取消引用函数指针时会发生什么?

Mary-Kate Olsen
发布: 2024-12-19 12:13:20
原创
137 人浏览过

What Happens When You Dereference a Function Pointer in C?

函数指针解引用:解开谜团

与解引用函数指针不会完成任何任务的假设相反,它在 C 中启动了一种独特的行为在作为代码访问数据存储器的传统意义上,函数指针不会被取消引用。

相反,在右值上下文中取消引用函数指针(例如在提供的示例代码中)会触发其立即转换为指向原始函数的指针。令人惊讶的是,随后对该指针的取消引用会检索相同的函数值,然后该值会立即转换回指针。这个循环可以无限地重复。

在检查左值上下文(例如,赋值的左侧)中的函数指针时,这种行为变得尤其明显。与转换为元素指针的数组不同,函数值转换为指向其自身类型的指针。因此,在左值上下文中取消引用函数指针会将一个新函数分配给该指针。

函数值隐式转换为指针背后的基本原理是纯粹实用的。对于使用函数指针的程序员来说,它消除了大量编写 & 的必要。相反,调用位置的函数指针会自动恢复为函数值,从而避免使用 * 来调用它们。

以上是当您在 C 中取消引用函数指针时会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板